Mysql自动备份脚本并自动删除2周前备份内容
1.环境
测试环境:centos6.9
mysql版本:mysql5.6
mysql安装目录:/usr/local/mysql/
备份目录:/mysqlbak
脚本位置:/mysqlbak/mysqlbak.sh
2.脚本代码
脚本内容如下,已有注释,请自行根据内容修改:
#2018.4.15刘编写
#定义用户名和密码
user="root"
pass="root"
#设置备份目录,在此为/mysqlbak,可自行设置
backup_dir="/mysqlbak"
#获取系统时间格式2018041521
backuptime="$(date +"%Y%m%d%H")"
#删除时间设置为当前时间前2周
deletetime=`date -d "2 week ago" +"%Y%m%d%H"`
rm -f /mysqlbak/mysqlbak_$deletetime.zip
#进入mysql可执行文件目录,本人mysql安装在/usr/local/mysql
cd /usr/local/mysql/bin
#执行导出全库语句
./mysqldump -u$user -p$pass --all-databases> "$backup_dir"/mysql_"$backuptime.sql"
zip -r /mysqlbak/mysqlbak_$backuptime.zip /mysqlbak/*.sql
rm -rf /mysqlbak/*.sql
3.mysqldump多种用法,可根据导倒数的第三行修改
命令行下具体用法如下:(若是本机执行可不使用-h localhost)
mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 路径/脚本名;
导出整个数据库结构和数据mysqldump -h localhost -uroot -p123456 database > /home/dump.sql
导出单个数据表结构和数据mysqldump -h localhost -uroot -p123456 database table > /home/dump.sql
导出整个数据库结构(不包含数据)mysqldump -h localhost -uroot -p123456 -d database > /home/dump.sql
导出单个数据表结构(不包含数据)mysqldump -h localhost -uroot -p123456 -d database table > /home/dump.sql
4.设置定时任务
vi /etc/crontab
若无该文件请执行yum安装crond命令:yum install crontabs
末尾添加一行:
59 21 * * * root /mysqlbak/mysqlbak.sh
以上意思为每天21:59分执行一次备份
查看定时任务日志:tail -f /var/log/cron
注:一定要手动执行一次看是否成功
参考文章:
https://blog.csdn.net/happysunshineguy/article/details/77113483
商业转载请联系作者获得授权,非商业转载请注明本文出处及文章链接