linux mysql数据库本地定时备份

linux mysql数据库本地定时备份
备份脚本:/home/mysqlBackup/mysqlBackup.sh
文件内容:
#!/bin/sh
source /etc/profile
backupdir="/home/mysqlBackup"
dataname="data_001" 
user=root
password=abcd
mkdir ${backupdir}/${dataname} -p
curTime=$(date "+%G-%m-%d %H:%M:%S")

mysqldump -u ${user} -p${password} --opt ${dataname} | gzip > ${backupdir}/${dataname}/${dataname}${curTime}.sql.gz 


增加脚本执行权限命令:chmod 777 /home/mysqlBackup/mysqlBackup.sh 
此时最好执行下备份脚本 看是否正常: /home/mysqlBackup/mysqlBackup.sh


修改定时任务文件:/var/spool/cron/root 
增加一行配置:
0 5 * * * /home/mysqlBackup/mysqlBackup.sh (每天5点执行一次脚本)
如果/var/spool/cron/root文件不存在 输入命令:crontab -e 进入crontab编辑页面之后就直接"shift+:",然后输入wq保存即可。然后一个新的crontab就生成了!

刷新定时任务命令:/etc/init.d/crond restart 或 service crond start
如刷新失败可以查看crontab服务状态:service crond status
如未安装,安装crontab:
yum install vixie-cron
yum install crontabs
查看crontab是否开机启动(crontab默认就是开机启动的,普通用户要有sudo的权限才能设置开机启动)
使用 chkconfig | grep crond 看在2 3 4 5级别是不是on


为了测试任务是否正常执行,可以先修改为 
*/1 0 * * * /home/mysqlBackup/mysqlBackup.sh (每分钟执行一次脚本)
/etc/init.d/crond restart
多等几分钟看是否有备份生成(定时任务生效需要一定时间)
如果发现不行,可以试试新增一条简单的定时任务
*/1 * * * * echo "test-----------------" >> /tmp/test.txt (/tmp/test.txt该文件需要存在)
/etc/init.d/crond restart
看看能不能正常执行,如果正常执行可以排除是定时任务的问题,问题就应该是在备份脚本里,可以在脚本里加输出
echo "test-----------------" 
然后再修改
*/1 0 * * * /home/mysqlBackup/mysqlBackup.sh

*/1 0 * * * /home/mysqlBackup/mysqlBackup.sh >> /tmp/test2.txt
看看脚本有没有被调用。

重点:/var/spool/cron/root 文件最后必须空一行。血泪史,配了6台机终于发现这个潜规则。原因不明欢迎指教




你可能感兴趣的:(linux mysql数据库本地定时备份)