记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

下载备份脚本文件


windows: 下载http://downinfo.myhostadmin.net/vps/bkupmysql.bat 保存到d盘根目录

linux:  wget  http://downinfo.myhostadmin.net/vps/bkupmysql.sh 保存到/root目录


3.编辑脚本文件

windows:

用记事本打开bkupmysql.bat     

set dbuser=root                        #设置数据库用户,一般不需要修改

set dbpass=passwd                      #设置数据库超管密码,需要修改为实际的密码

set DaysAgo=7                          #设置保留天数

set mysqlpath=d:\mysqlbak              #设置备份文件保存路径,一般不需要修改

set mysql=D:\SOFT_PHP_PACKAGE\mysql\bin\mysql.exe   #设置备份文件保存路径,5.6版本需要修改路径

set mysqldump=D:\SOFT_PHP_PACKAGE\mysql\bin\mysqldump.exe #设置mysql执行文件路径,5.6版本需要修改路径

set logfile=d:\bkinfo.log              #设置备份成功与否日志文件,一般不需要修改

set logfail=d:\bkfail.log              #设置失败过程详细日志文件,一般不需要修改

注意:若创建的数据库中包含Database,test,information_schema,performance_schema,mysql字符,

请删除

findstr -v "^Database$ ^Database$ ^test$ ^information_schema$ ^performance_schema$ ^mysql$"

中对应的名称



@echo off
cls
set dbuser=root
set dbpass=passwd
set DaysAgo=7
set mysqlpath=d:\mysqlbak
set mysql=D:\SOFT_PHP_PACKAGE\mysql\bin\mysql.exe
set mysqldump=D:\SOFT_PHP_PACKAGE\mysql\bin\mysqldump.exe
set dt=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
set logfile=d:\bkinfo.log
set logfail=d:\bkfail.log
if not exist "%mysqlpath%"  md "%mysqlpath%"
for /f "delims=" %%i in ('mysql -u%dbuser% -p%dbpass% -e"show databases"^|findstr -v "^Database$ ^test$ ^information_schema$ ^performance_schema$ ^mysql$"') do (
%mysqldump% -f -u%dbuser% -p%dbpass% %%>"%mysqlpath%\%%i-%dt%.sql" 2>>%logfail% 
If  %errorlevel%==0 (
forfiles /p %mysqlpath% /s /m %%i*.* /d -%DaysAgo% /c "cmd /c  del /f /q /a @path"
echo %date%   sucess    %%>>%logfile%
else (
echo %date%   fail      %%>>%logfile%
)
)







linux:

vi bkupmysql.sh

按i进入编辑模式

dbuser='root'                         #设置数据库用户,一般不需要修改

dbpass='passwd'                       #设置数据库超管密码,需要修改为实际的密码

DaysAgo='7'                           #设置保留天数

mysqlpath='/home/backup/mysql'        #设置备份文件保存路径,一般不需要修改

mysql='/www/wdlinux/mysql/bin/mysql'  #设置mysql执行文件路径,一般不需要修改

mysqldump='/www/wdlinux/mysql/bin/mysqldump'  #设置mysqldump执行文件路径,一般不需要修改

exclude_db="^Database$\|^mysql$\|^information_schema$\|^performance_schema$\|^test$" 

#设置禁止备份的数据库名,一般不需要修改

logfile='/root/bkinfo.log'            #设置备份成功与否日志文件,一般不需要修改

#logfail='/root/bkfail.log'           #设置失败过程详细日志文件,一般不需要修改

主要修改数据库密码,其他可保持默认

修改完成后按ESC键返回,按:wq保存退出


#!/bin/bash
dbuser='root'
dbpass='vfkahp2p'
DaysAgo=7
mysqlpath='/home/backup/mysql'
mysql='/www/wdlinux/mysql/bin/mysql'
mysqldump='/www/wdlinux/mysql/bin/mysqldump'
exclude_db="^Database$\|^mysql$\|^information_schema$\|^performance_schema$\|^test$"
logfile='/root/bkinfo.log'
#logfail='/root/bkfail.log'
now=`date "+%Y-%m-%d %H:%M:%S"`
echo $now
test -e $mysqlpath||mkdir -p $mysqlpath
db_array=`$mysql -u$dbuser -p$dbpass -e"show databases;"|grep -v $exclude_db`
if [ $? -eq 0 ];then
   for dbname in ${db_array[*]}
   do
       $mysqldump -f -u$dbuser -p$dbpass $dbname >$mysqlpath/$dbname-$(date +%Y%m%d%H%M%S).sql
      if [ $? -eq 0 ];then
          find $mysqlpath -type f -mtime +$[DaysAgo-1] -name "$dbname-*" -exec rm -f {} \;
          echo $now "sucess    $dbname" >> $logfile
      else
          echo $now "fail      $dbname" >> $logfile
      fi
   done
else
   echo $now "All fail" >> $logfile
fi



4.添加任务计划

每天凌晨4点执行

windows:

cmd下执行

schtasks /create /tn "bkupmysql" /ru system /tr d:\bkupmysql.bat /sc daily /st 04:00

linux:

crontab -e

按i进入编辑状态,在末尾换行,复制以下内容,其中/root/bkfail.log为失败详细日志保存路径

0 4 * * * /bin/sh /root/bkupmysql.sh >>/root/bkfail.log 2>&1

按ESC键返回,按:wq保存退出



提示:以上脚本仅供参考,实际应用可能因环境、权限、配置等不同造成不能备份或其他异常,请根据实际情况自行调整。



转载请标明出处【windows,Linux自动备份mysql并删除7天前备份】。

《www.92cto.com》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论