定时crontab执行数据库备份不起作用,手动运行起作用的问题
用crontab定时任务去执行mysqldump,定时备份数据库,手动是可以执行的。如下图,生成了备份文件。
但是,用crontab 去执行这个back.sh脚本的话,是不会生成备份文件的,起初怀疑crontab没有执行。
查看crontab日志
cat /var/log/cron
发现,是执行了的
注意,crontab执行出错的信息,不会写在日志文件中,而是会发给你一个mail,如下图所示
查看这个邮件,cat /var/spool/mail/root
提示
1.脚本文件中的,mysqldump命令,在命令行中使用密码不安全,
2.rar命令没找到,(没有使用绝对地址)
解决方法如下:
1.msyql配置文件中,添加账户和密码,这样在命令行中不需要使用用户名和密码
找到mysql配置文件 whereis my
vi /etc/my.cnf,添加用户名和密码
[mysqldump]
user=用户米
password='密码'
重启msyql,
/usr/local/msyql/bin/mysqld restart
2.把rar绝对路径加上去
whereis rar
编辑back.sh脚本文件,把绝对路径加上,并且去掉msyqldump后的用户名和密码
问题解决
备注:
crontab配置文件地址 /etc/crontab
crontab日志地址 /usr/log/cron