Почему 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

, но не знает, почему он не вызывается анакроном ....

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
3
задан 30 March 2015 в 17:15

1 ответ

Я нашел два обходных пути для этого ...

Вариант 1: запускать сценарий cron.daily от имени пользователя без полномочий root

Скрипты в /etc/cron.daily будут работать от имени пользователя root, но пользователю root не нужен пароль для запуска от имени пользователя кто-нибудь другой. Поэтому поместите туда скрипт, который делает что-то вроде этого:

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

Главный недостаток, если вам нужно быть пользователем root, чтобы настроить это.

Вариант 2. Настройка персонального анакрона

Создайте свои собственные каталоги сценариев анакрона, например ~/.anacron/daily, ~/.anacron/weekly и ~/.anacron/monthly. Поместите ваши ежедневные сценарии в ежедневник.

Затем создайте свой собственный файл 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/spool.

Наконец вам нужно запустить анакрон. Для этого используйте частую работу cron. Запустите crontab -e и добавьте

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

Это будет запускать anacron с вашей конфигурацией каждую минуту, и если задание будет выполнено, anacron запустит его. Вы можете сделать это менее часто, если хотите, каждый час может быть достаточно хорош для большинства пользователей.

0
ответ дан 30 March 2015 в 17:15

Другие вопросы по тегам:

Похожие вопросы: