#auto backup mysql db
#by authors sdyz 2022
#dufine backup path
BAK_DIR=/home/mysqlbackup/`date +%Y%m%d/%H:%M:%S`
MYSQLDB=yourdatabase
MYSQLUSR=username
MYSQLPW=password
MYSQLCMD=/usr/bin/mysqldump
#判断是否为root用户
if [ $UID -ne 0 ]; then
echo "必须使用root用户执行。 "
exit
fi
#如果BAK_DIR这个目录不存在则创建,否则打印存在
if [ ! -d $BAK_DIR ];then
mkdir -p $BAK_DIR
echo -e " 33[32mThe $BAK_DIR Create Succsessfully! 33[0m"
else
echo -e " 33[32m This $BAK_DIR is exists... 33[0m"
fi
$MYSQLCMD -u$MYSQLUSR -p$MYSQLPW $MYSQLDB > $BAK_DIR/$MYSQLDB.sql
if [ $? -eq 0 ];then
echo -e " 33[32m The mysql backup $musqldb successfully ! 33[0m"
else
echo -e " 33[32m the mysql backup $mysql_db Failedm please check. 33[0m"
fi
2 脚本执行过程可能报错 syntax error near unexpected token `fi’,解决参照下面链接
syntax error near unexpected token `fi’
3 输入crontab -e 将执行脚本加入自动执行任务 示例为每个五分钟执行 备份*/5 * * * * /bin/bash /home/auto_backup_mysql.sh >>/tmp/mysql_bak.log 2>&14 crontab 的使用方式(安装步骤略)
查看任务: crontab -l 编辑任务: crontab -e 键入 a 进入编辑模式 进行编辑后 Ctrl+c 退出编辑模式 Shift + w + q 退出编辑 wq 保存并退出5 常用的cron
43 21 * * * #21:43 执行 15 05 * * * #05:15 执行 0 17 * * * #17:00 执行 0 17 * * 1 #每周一的17:00 执行 0,10 17 * * 0,2,3 #每周日,周二,周三的17:00和17:10 执行 0-10 17 1 * * #毎月1日从17:00到7:10毎隔1分钟 执行 0 0 1,15 * 1 #毎月1日和15日和一日的0:00 执行 42 4 1 * * #毎月1日的4:42分 执行 0 21 * * 1-6 #周一到周六21:00 执行 0,10,20,30,40,50 * * * * #每隔10分 执行 */10 * * * * #每隔10分 执行 * 1 * * * #从1:0到1:59每隔1分钟 执行 0 1 * * * #1:00 执行 0 */1 * * * #毎时0分每隔1小时 执行 0 * * * * #毎时0分 执行 2 8-20/3 * * * #8:02,11:02,14:02,17:02,20:02 执行 30 5 1,15 * * #1日和15日的5:30 执行



