Cron 作业未执行命令

roy*_*aar 5 ruby backup cron ruby-on-rails

我正在尝试使用此处解释的cron 作业来安排备份。

cron 作业确实运行,但遗憾的是没有执行其中的命令。

这是我的 schedule.rb 文件

every 1.minute do
   command "backup perform -t my_backup"
end
Run Code Online (Sandbox Code Playgroud)

转换为这个 cron 文件:

# Begin Whenever generated tasks for: /home/roy/Backup/config/schedule.rb
* * * * * /bin/bash -l -c 'backup perform -t my_backup'

# End Whenever generated tasks for: /home/roy/Backup/config/schedule.rb
Run Code Online (Sandbox Code Playgroud)

然后 cron 作业每分钟运行一次(我可以通过运行看到grep CRON /var/log/syslog)。这些是我最后的 cron 工作:

Mar 20 21:48:01 roybuntu CRON[18041]: (roy) CMD (/bin/bash -l -c 'backup perform -t my_backup')
Mar 20 21:48:01 roybuntu CRON[18040]: (roy) MAIL (mailed 37 bytes of output but got status 0x004b from MTA#012)
Mar 20 21:49:01 roybuntu CRON[18063]: (roy) CMD (/bin/bash -l -c 'backup perform -t my_backup')
Mar 20 21:49:01 roybuntu CRON[18062]: (roy) MAIL (mailed 37 bytes of output but got status 0x004b from MTA#012)
Run Code Online (Sandbox Code Playgroud)

我还安装了 postfix,因为之前我在上面的示例中收到了“未安装 MTA”的错误消息。然而这并没有解决它。

任何熟悉这个问题和/或知道如何解决它的人?

编辑: 也以 root 用户身份运行 cron 文件似乎不起作用。我曾经sudo crontab -e编辑根 cron 文件。

这是grep CRON /var/log/syslog我添加 root crontab 后运行命令时的输出:

Mar 21 19:36:01 roybuntu CRON[9387]: (root) CMD (/bin/bash -l -c 'backup perform -t my_backup')
Mar 21 19:36:01 roybuntu CRON[9388]: (roy) CMD (/bin/bash -l -c 'backup perform -t my_backup')
Mar 21 19:36:01 roybuntu CRON[9385]: (roy) MAIL (mailed 37 bytes of output but got status 0x004b from MTA#012)
Mar 21 19:36:01 roybuntu CRON[9386]: (root) MAIL (mailed 90 bytes of output but got status 0x004b from MTA#012)
Run Code Online (Sandbox Code Playgroud)

小智 2

您是否尝试以与应用程序相同的用户身份运行 cron 任务命令?它可能没有运行该命令的权限。