定时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

  

 

posted @ 2023-05-26 11:16  会飞的-余  阅读(581)  评论(0编辑  收藏  举报