前面我们写了Linux 自动备份Mysql Shell 脚本,但是最近论坛被疯狂灌水,导致一些表崩溃Crashed了,所以我们mysqldump的时候会报错,以下脚本将会先检查数据库里所有的表(如果有问题将自动执行修复动作),然后再自动备份整个数据库。
#!/bin/sh d=`date "+%Y-%m-%d-%H-%M-%S"` v_user="数据库用户名" v_password="密码" v_database="数据库名" #开始repair整个数据库里的表,如果-r 修复不了,可以用-o 参数代替修复 mysqlcheck -u$v_user -p$v_password $v_database -r > /root/RepairLog/$d.log # 以下是自动备份脚本动作 mysqldump -u$v_user -p$v_password $v_database --default-character-set=gbk | gzip > $FP$FName.sql.gz
加入自动运行之前可以先运行测试一下是否有报错:
sh /backup/sqlDump.sh
crontab 定时任务:
如果没有问题的话然后加入到crontab里
crontab -e
内容如下:
30 3 * * 1 sh /backup/sqlDump.sh
每个星期一的早上3:30 自动进行备份。