我正在尝试添加每日cron作业来备份数据库。我可以通过运行sh /path/to/file/backup.sh
手动完成它,但是当我将文件放在cron.daily目录中时,它不会每天运行。为了尝试和诊断它,我在cron.daily中创建了一个名为test的测试文件,以查看它是否会运行。当我运行run-parts --test /etc/cron.daily
时,我得到了输出
/etc/cron.daily/apache2
/etc/cron.daily/apt
/etc/cron.daily/bsdmainutils
/etc/cron.daily/dpkg
/etc/cron.daily/etckeeper
/etc/cron.daily/logrotate
等等。
然后我尝试将logrotate的内容复制到一个新文件atest,然后再次运行run-parts但结果相同。
ATEST:
#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
我需要做些什么特别的事情让cron在cron.daily中识别新添加的任务?
这不是cron.daily独有的,我已经尝试过月度,周度和小时以及相同的结果。我也试过重启cron而没有成功。我在Debian 7.2上运行它。
答案 0 :(得分:1)
有一些事情可以阻止/ etc / cron *目录中的文件运行(例如/etc/cron.daily):
权限。确保文件的权限为0644。
文件名必须符合某些条件。从文档:" ...它们必须完全由字母,数字组成,并且只能包含特殊符号,下划线(' _')和连字符(' - &# 39)。任何不符合这些要求的文件都不会被运行部件执行。