Cron作业没有执行命令

时间:2018-03-20 20:56:13

标签: ruby-on-rails ruby cron backup

我尝试使用cron作业as explained here安排备份。

cron的工作确实在运行,但遗憾的是不在其中执行命令。

这是我的schedule.rb文件

every 1.minute do
   command "backup perform -t my_backup"
end

转换为此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

然后每分钟运行一次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)

我还安装了postfix,因为之前我得到了"没有安装MTA"上例中的错误消息。然而,这并没有解决它。

有谁熟悉这个问题和/或知道如何修复它?

修改 另外以root用户身份运行cron文件似乎不起作用。我使用sudo crontab -e编辑根cron文件。

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

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)

1 个答案:

答案 0 :(得分:2)

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