1、创建自动备份目录与脚本
# mkdir /data/mysqlbackup/
# vi backdb.sh
加入以下脚本内容
#!/bin/bash
/usr/local/mysql/bin/mysqldump -uacm -pacm123 acmdb > /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql
tar czvf /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql.tar.gz /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql
sh checkexist.sh
mv /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql.tar.gz /data/MySQLbackup/$(date +%Y%m%d)/
第一行,注意mysqldump 指令不在root目录下,所以要给mysqldump 指令加上绝对路径。方便后续创建定时任务会找到改指令。
第二行,将导出到本地的sql脚本打包压缩,如果不压缩也可以,处于自己选择。
第三行,引入一个检查脚本,下面列出。
第四行,将未压缩的原始脚本删除。
注意为backdb.sh添加执行权限
2、添加检查脚本
# chmod u+x backdb.sh
# vi checkexist.sh
#!/bin/bash
dire="/data/MySQLbackup/$(date +%Y%m%d)"
if [ -d "$dire" ]; then
echo "文件夹$(date +%Y%m%d)已存在,不再创建"
rm -rf /data/MySQLbackup/acmdb*.sql
else
mkdir /data/MySQLbackup/$(date +%Y%m%d)
fi
3、加入定时任务
# crontab -e
进入编辑操作,添加一下脚本的绝对路径,每分钟执行一次。
*/1 * * * * /data/MySQLbackup/acmsh/backdb.sh
查看定时任务
# crontab -l
可以追踪/var/log/cron日志查看定时任务执行情况。
# tail -f /var/log/cron