Crontab 绝对路径不起作用

Crontab absolute path not working

我有一个脚本来备份我在 /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 不是 运行ning 我的 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 可靠。有什么帮助吗?

如评论所述,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.