需求:在阿里云服务器centOs 7上装了一个mysql5.6.41,每日自动备份数据库。
1.写一个脚本/home/mysql/mysql_backup.sh
#!/bin/bash
backupdir=/home/mysql
time=` date +%Y%m%d%H%M%S`
/usr/local/mysql/bin/mysqldump --login-path=liao db | gzip > $backupdir/db_$time.sql.gz
find $backupdir -name "db_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
大概意思是备份并压缩,删除5天以前的数据。
2.增加可执行权限
chmod u+x /home/mysql/mysql_backup.sh
3.加入linux定时任务,每天0点0分执行
crontab -e
0 0 * * * /home/mysql/mysql_backup.sh
ps:
1号坑:密码中出现千奇百怪的符号时,会报1045错误,试过网上很多的方法(加引号、放到变量里、交互中输入)都不能用。后来发现--login-path=liao是mysql5.6开始支持的特性,可以避免重复输入登录信息,避免敏感信息暴露,正好能用。
2号坑:mysqldump最好写绝对路径,否则若cron和root的环境变量不一致,会导致定时任务备份失败。
网友评论