anacron 何时运行

anacron 何时运行

我想在 Ubuntu 13.04 上使用 anacron 完成每周的工作。

这是我的 /etc/crontab:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# 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    * * 5   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 )
#

这是我的/etc/anacrontab:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1   5   cron.daily  run-parts --report /etc/cron.daily
7   10  cron.weekly run-parts --report /etc/cron.weekly
@monthly    15  cron.monthly    run-parts --report /etc/cron.monthly

这是我的 /etc/cron.weekly/0anacron:

#!/bin/sh
#
# anacron's cron script
#
# This script updates anacron time stamps. It is called through run-parts
# either by anacron itself or by cron.
#
# The script is called "0anacron" to assure that it will be executed
# _before_ all other scripts.

test -x /usr/sbin/anacron || exit 0
anacron -u cron.weekly

最后,这是我放入 /etc/cron.weekly/ 的脚本:

#!/bin/sh
curlftpfs -o allow_other,skip_pasv_ip mauro-casa.no-ip.org:21001/Volume_1/Foto/Marta/ /home/mauro/Pubblici/Marta_NAS/
sleep 5
rsync -rlt --update --ignore-existing --size-only --exclude=.picasaoriginals/* --exclude=.picasaoriginals --exclude=.directory --exclude=.dropbox --exclude=picasa.ini --temp-dir=/home/mauro/.rsync-temp/ /home/mauro/Dropbox/Marta/ /home/mauro/Pubblici/Marta_NAS/
umount -l /home/mauro/Pubblici/Marta_NAS/

该脚本显然是chmoded +x,如果手动执行(使用sudo),它可以完美运行。

编辑#1

根据要求,以下是输出

cat /var/log/cron.log | grep "Oct 13"

Oct 13 08:29:05 mauro-alienware anacron[1315]: Anacron 2.3 started on 2013-10-13
Oct 13 08:29:05 mauro-alienware cron[1266]: (CRON) INFO (pidfile fd = 3)
Oct 13 08:29:05 mauro-alienware cron[1403]: (CRON) STARTUP (fork ok)
Oct 13 08:29:05 mauro-alienware cron[1403]: (CRON) INFO (Running @reboot jobs)
Oct 13 08:29:06 mauro-alienware anacron[1315]: Will run job `cron.daily' in 5 min.
Oct 13 08:29:06 mauro-alienware anacron[1315]: Jobs will be executed sequentially
Oct 13 08:34:05 mauro-alienware anacron[1315]: Job `cron.daily' started
Oct 13 08:34:05 mauro-alienware anacron[1651]: Updated timestamp for job `cron.daily' to 2013-10-13

似乎没有显示 cron.weekly 的日志。

相反,这是输出的摘录cat /var/log/cron.log.1 | grep "Oct 11"

Oct 11 06:47:01 mauro-alienware CRON[12553]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
Oct 11 06:59:11 mauro-alienware anacron[5125]: Anacron 2.3 started on 2013-10-11
Oct 11 06:59:11 mauro-alienware anacron[5125]: Normal exit (0 jobs run)
Oct 11 07:45:54 mauro-alienware anacron[5444]: Anacron 2.3 started on 2013-10-11
Oct 11 07:45:54 mauro-alienware anacron[5444]: Normal exit (0 jobs run)
Oct 11 07:46:39 mauro-alienware CRON[9156]: (root) CMD (start -q anacron || :)
Oct 11 07:46:39 mauro-alienware anacron[9159]: Anacron 2.3 started on 2013-10-11
Oct 11 07:46:39 mauro-alienware anacron[9159]: Normal exit (0 jobs run)
Oct 11 08:46:31 mauro-alienware cron[1249]: (CRON) INFO (pidfile fd = 3)
Oct 11 08:46:31 mauro-alienware cron[1308]: (CRON) STARTUP (fork ok)
Oct 11 08:46:31 mauro-alienware cron[1308]: (CRON) INFO (Running @reboot jobs)
Oct 11 08:46:31 mauro-alienware anacron[1303]: Anacron 2.3 started on 2013-10-11
Oct 11 08:46:31 mauro-alienware anacron[1303]: Normal exit (0 jobs run)
Oct 11 08:46:35 mauro-alienware anacron[1839]: Anacron 2.3 started on 2013-10-11
Oct 11 08:46:35 mauro-alienware anacron[1839]: Normal exit (0 jobs run)
Oct 11 08:46:37 mauro-alienware anacron[4700]: Anacron 2.3 started on 2013-10-11
Oct 11 08:46:37 mauro-alienware anacron[4700]: Normal exit (0 jobs run)

答案1

您没有发布您尝试运行的脚本的实际名称,但它很可能包含一个点('.'),就像以'.sh'结尾一样。

运行部件将不是运行包含除字母数字字符或连字符之外的任何其他内容的脚本。删除点即可。

答案2

anacron 何时运行

通常 anacron 不作为守护进程运行。在基于 Debian 的系统上,它与经典 cron 一起运行/etc/cron.d/anacron。它还会在系统启动、从睡眠状态恢复和更改电源管理状态后启动。

您可以使用 检查 anacron 作业上次运行的日期sudo cat /var/spool/anacron/cron.weekly

答案3

cat /etc/cron.d/anacron

将显示 anachron 运行的时间和日期,例如:

# /etc/cron.d/anacron: crontab entries for the anacron package

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

30 7    * * *   root    start -q anacron || :

显示它将在每天早上 7:30 运行,但每周仅运行一次。它会检查写入的日期

sudo cat /var/spool/anacron/cron.weekly

(如果日期较旧,它将启动并更新该文件中的日期)

相关内容