Почему 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
1 ответ
Я нашел два обходных пути для этого...
Вариант 1. Запустите скрипт cron.daily от имени пользователя, не являющегося пользователем root.
Скрипты в /etc/cron.daily
будет работать от имени пользователя root, но пользователю root не нужен пароль для запуска от имени другого пользователя. Так что поместите скрипт, который делает что-то вроде этого:
su myuser -c "/home/myuser/dostuff.sh"
Главный недостаток, если вам нужно быть пользователем root, чтобы настроить это.
Вариант 2: настроить личный анакрон
Создайте свои собственные каталоги скриптов anacron, например ~/.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, например ~/.anacron/spool
,
Наконец вам нужно запустить анакрон. Для этого используйте частую работу cron. Бежать crontab -e
и добавить
* * * * * /usr/sbin/anacron -t /home/myuser/.anacron/anacrontab -S /home/myuser/.anacron/spool
Это будет запускать anacron с вашей конфигурацией каждую минуту, и если задание будет выполнено, anacron запустит его. Вы можете сделать это менее часто, если хотите, каждый час может быть достаточно хорошим для большинства пользователей.