我有一个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
, I see:
localhost crond[11881]: (root) BAD FILE MODE (/etc/cron.d/pg_backup.sh)
但是,当我修改pg_backup.sh
as:
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
那么适当的文件权限是什么?
问题是您已经安装了要在/etc/cron.d
目录。该目录用于 crontab 文件,而不是 shell 命令。 (查看该目录中的现有文件。)
有一个登记入住crond
该目录中的任何文件都不能被所有者以外的任何人读取或写入(所有者必须是root
),并且任何人都不能执行。所以你必须将权限更改为600
,或者更严格的东西,以避免该消息 - 然后,正如您所看到的,您将无法执行该脚本。
相反,将脚本放在其他地方并更新您的 crontab:
@daily /some/other/directory/pg_backup.sh
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)