为什么 anacron 不调用 crontab 用户文件?

为什么 anacron 不调用 crontab 用户文件?

我想要每天启动一个特殊命令,但不想将其放在 /etc/cron.d/ 中,因为它是特定于用户的用户!

pg@pipoTower: ~$ crontab -l
# m h  dom mon dow   command
0 0 * * * updatedb -l 0 -o ~/.externalharddisk.db -U /var/autofs/removable/usbData

crontab -e将文件放入的命令/var/spool/cron/crontabs/userName

但不知道为什么它没有被 anacron 调用....

usr@Tower: ~/$ cat /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

答案1

我找到了两种解决方法......

选项 1:以非 root 用户身份运行 cron.daily 脚本

中的脚本/etc/cron.daily将以 root 身份运行,但 root 不需要密码即可以其他用户身份运行。因此,请在此处放置一个执行如下操作的脚本:

su myuser -c "/home/myuser/dostuff.sh"

主要的缺点是如果您需要以 root 身份进行设置。

选项 2:设置个人 anacron

创建您自己的 anacron 脚本目录,例如~/.anacron/daily~/.anacron/weekly~/.anacron/monthly。将您的日常脚本放在 daily 目录中。

然后创建你自己的 anacrontab 文件,例如~/.anacron/anacrontab。并使其显示以下内容:

1   5   cron.daily  run-parts --report /home/myuser/.anacron/daily
7   10  cron.weekly run-parts --report /home/myuser/.anacron/weekly
@monthly    15  cron.monthly    run-parts --report /home/myuser/.anacron/monthly

还要为你的 anacron 任务创建一个假脱机目录,例如~/.anacron/spool

最后你需要运行 anacron。为此使用频繁的 cron 作业。运行crontab -e并添加

* * * * * /usr/sbin/anacron -t /home/myuser/.anacron/anacrontab -S /home/myuser/.anacron/spool

这将每分钟使用您的配置运行 anacron,如果有作业到期,anacron 将运行该作业。如果您愿意,可以降低运行频率,但对于大多数用户来说,每小时运行一次可能就足够了。

相关内容