我有一个脚本可以随时每天运行。所以/etc/cron.daily
似乎是一个简单的解决方案。
但是现在我遇到了问题,cronjob不会运行该脚本。似乎cronjob不会运行任何日常工作。
所以我试着把它放到cron.hourly,一切正常。 但我不想每小时运行一次备份脚本。
/etc/init.d/cron start|stop
无错误地工作。
/etc/crontab
看起来像默认:
m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
由于它不会运行,我尝试安装anacron但没有任何更改。
为什么它运行每小时脚本但不运行每日脚本?
非常感谢你们所有人!
答案 0 :(得分:4)
你安装了anacron吗?
# dpkg --get-selections | grep anacron
如果是,则不会运行每日,每周和每月脚本。
答案 1 :(得分:3)
可能是,你的一个日常脚本行为不端。尝试手动运行它们。我删除了logwatch包和cron.daily工作,然后又恢复了工作。
这是我的/ etc / crontab
# /etc/crontab: system-wide crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
16 * * * * root cd / && run-parts --report /etc/cron.hourly
12 2 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
41 1 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
9 3 30 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
尝试像这样运行每日
run-parts -v --report /etc/cron.daily
你也可以使用--list或--test来获得更多输出。在我的情况下,我删除了行为不端的脚本,并且日常工作再次起作用
答案 2 :(得分:2)
运行部件的联机帮助页:
如果既未给出--lsbsysinit
选项也未给出--regex
选项,则名称必须完全由ASCII大写和小写字母,ASCII数字,ASCII下划线和ASCII减号连字符组成。
我认为它不喜欢你的脚本名称。例如,它不喜欢扩展名“.sh”,因为不允许使用点。
答案 3 :(得分:2)
我在/etc/cron.daily中的一个脚本遇到了同样的问题 脚本的名称是backupBugzilla.sh
将脚本重命名为backupBugzilla后,它可以正常工作。
答案 4 :(得分:2)
我遇到了这个问题,原因是/etc/cron.daily
中我的脚本所有者不是root用户。将root设为/etc/cron.daily
:
sudo chown root /etc/cron.daily/*
另外,请确保脚本是可执行的:
sudo chmod +x /etc/cron.daily/*
答案 5 :(得分:1)
我有一个小孩不能开始/etc/init.d/anacron
。
我的解决方案:
edit /etc/init.d/anacron
必需 - 开始:$ all
保存并运行:
update-rc.d /etc/init.d/anacron defaults
现在运作良好。