1、在指定目录下 建立导出备份数据的文件夹
mkdir /data/mysql_data
2、建立sh脚本文件
touch xx.sh
3、编辑脚本
vim xx.sh
#脚本内容
mysql_user="root"
mysql_password="pwd"
mysql_password="pwd"
dataBase="xx" #数据库别名
backup_location=/data/mysql_data
expire_days=7 #存放天数
backup_time=`date +%Y%m%d%H%M`
backup_dir=$backup_location
welcome_msg="Welcome to use MySQL backup tools!"
docker exec -i mymysql mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -B $dataBase> $backup_dir/$backup_time.sql
if [ "$expire_backup_delete" == "ON" -a "$backup_location" != "" ];then
`find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`
echo "Expired backup data delete complete!"
fi
4、授予脚本读写权限
chmod u+x xx.sh
5、测试脚本 如果生成sql文件 代表成功
./xx.sh
如果 文件有乱码的情况下
输入:set fileformat=unix。(注意要带冒号,是在编辑器最底部输入才对)之后输入:wq保存即可。
6、添加定时任务
crontab -e
7、编辑命令 每天12点执行脚本任务 生成log.txt 日志记录
00 12 * * * cd /home/dbback;sh mysql_backup.sh >> log.txt 2>>log.txt
8、定时任务命令 重启定时任务
/sbin/service crond start #启动
/sbin/service crond stop #关闭
/sbin/service crond restart #重启
/sbin/service crond reload #重新加载
9、设为开机开启
vi /etc/rc.local
#编辑内容
/bin/systemctl start crond.service
10、查询当前用户定时服务
crontab -e