我的备份数据库的shellcript工作正常。 但是,当我尝试通过crontab运行时,没有备份。
这是mycrontab
* * * * * /home/mohan/sohan/backuptest.sh
backuptest.sh的内容是
#!/bin/bash
name=`date +%Y%m%d`.sql
#echo $name
mysqldump -u abc --password=abc my_db > $name
backup.sh在正常运行时工作正常。但是在通过crontab
运行时无法生成备份答案 0 :(得分:0)
有两种可能性......首先,从cron
运行时无法找到您的程序/命令,其次是从cron
运行时无法找到您的数据库。
所以,首先是程序。您正在使用date
和mysqldump
,因此在您的终端提示您需要找到它们的位置,如下所示:
which date
which mysqldump
然后,您可以将上面输出的完整路径放入脚本中,或者在包含两个路径的第二行添加PATH=
语句。
其次,您的数据库。它在哪里?例如,如果它在/home/mohan/sohan/
中,则需要像这样更改脚本:
#!/bin/bash
name=`/bin/date +%Y%m%d`.sql
cd /home/mohan/sohan
/usr/local/bin/mysqldump -u abc --password=abc my_db > $name