Cron BAD文件模式与权限被拒绝

时间:2016-04-14 22:00:07

标签: unix cron centos

我有一个cron工作来备份我的数据库:

➜  ~ crontab -l
@daily /etc/cron.d/pg_backup.sh

但是,设置适当的权限时会出现问题。

当我有:

➜  ~ ls -l /etc/cron.d/pg_backup.sh
-rwxr-xr--. 1 root root 1359 Apr 14 21:39 /etc/cron.d/pg_backup.sh

然后检查grep "pg_backup.sh" /var/log/cron,我看到了:

localhost crond[11881]: (root) BAD FILE MODE (/etc/cron.d/pg_backup.sh)

但是,当我将pg_backup.sh修改为:

chmod 644 pg_backup.sh

它会禁用警告:

localhost CROND[11064]: (root) CMD (/etc/cron.d/pg_backup.sh)

但是我看到了

➜  ~ cat /var/mail/root
# ...
/bin/sh: /etc/cron.d/pg_backup.sh: Permission denied

那么适当的文件权限是什么?

1 个答案:

答案 0 :(得分:0)

问题是您已经安装了要在/etc/cron.d目录中执行的脚本。该目录用于crontab文件,而不是shell命令。 (看一下该目录中的现有文件。)

crond中检查该目录中的任何文件都不是所有者以外的任何人可读或写的(必须是root),并且不可由任何人执行。所以你必须将权限更改为600,或更严格的权限,以避免消息 - 然后,正如您所见,您将无法执行脚本。

相反,将脚本放在其他位置并更新您的crontab:

@daily /some/other/directory/pg_backup.sh