我有一个脚本可以在/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。有什么帮助吗?
答案 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。