CRON 不运行任务,因为“/bin/bash: /var/log/cron.log: 权限被拒绝”

use*_*621 5 permissions bash cron log

我有以下 CRON 任务:

MAILTO="my@email.com"

# Begin Whenever generated tasks for: projectname
30 4 * * * /bin/bash -l -c 'cd /home/deployer/apps/project_production/releases/20150305135322 && bin/rails runner -e production '\''Invoices.run_update'\'' >> /var/log/cron.log 2>&1'

# End Whenever generated tasks for: projectname
Run Code Online (Sandbox Code Playgroud)

但是当我查看从服务器发送到我的电子邮件地址的报告时,只有以下内容:

/bin/bash: /var/log/cron.log: Permission denied
Run Code Online (Sandbox Code Playgroud)

(日志文件路径正确)

我必须为 CRON 作业的日志文件设置哪些权限?

感谢您有一个愉快的一天。

编辑:目录中 没有cron.allowcron.deny文件/etc

编辑2; 试过了sudo chmod u+w cron.log,但还是一样。

Ter*_*nce 4

看起来它无法创建日志文件。检查 /var/log 文件夹的权限。它应该是

ls -l /var/

drwxrwxr-x 18 root syslog   4096 Mar  6 14:30 log
Run Code Online (Sandbox Code Playgroud)

如果它看起来不像第一个以 drwxrwxr-x 开头的文件,请通过输入以下内容更改该文件夹的权限:

sudo chmod 775 /var/log
Run Code Online (Sandbox Code Playgroud)

再次运行 cron 作业。

  • 或者运行 `chown <userThatRunsTheCronJob> /var/log/cron.log` - 例如 `chown deployer:deployer /var/log/cron.log` (3认同)