Crontab绝对路径不起作用

时间:2015-01-23 12:37:27

标签: cron crontab

我有一个脚本可以在/home/<user>/bin/dbbackup备份我的数据库。该脚本可由所有用户执行,并由我拥有。文件/etc/cron.allow/etc/cron.deny不存在。

在我的crontab中,我有以下几行(包括最后一行代码后的新空白行):

@reboot /home/<user>/.dropbox-dist/dropboxd

30 2 * * * bash /home/<user>/bin/dbbackup

但是,cron没有运行我的dbbackup脚本。当我对脚本进行手动测试时,它可以工作。当我在命令行上运行此测试时:* * * * * /bin/echo "cron works" >> ~/file我收到以下错误:

No command 'dbbackup' found, did you mean:
 Command 'dvbackup' from package 'dvbackup' (universe)
 Command 'tdbbackup' from package 'tdb-tools' (main)
dbbackup: command not found

我的服务器正在运行Ubuntu Trusty。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

正如评论所指出的那样,似乎amiga_os需要删除对该行中bash的引用。

30 2 * * * bash /home/<user>/bin/dbbackup

应该是。

30 2 * * * /home/<user>/bin/dbbackup

我通常只是从他们的路径调用脚本并使用“#!/ bin / bash”(或者你的bash所在的任何地方)作为脚本的第一行。似乎amiga_os已经做到了这一点,这很好。我不喜欢把句子放入cron因为它让我感到紧张。

我认为这是一个路径问题,因为cron作为用户执行但没有读取bash配置文件,因此不能像在shell下那样工作,因为它可能无法访问你的$ PATH。