Страница 1 из 1
[РЕШЕНО] Помогите понять anacron
Добавлено: 04 мар 2019, 17:03
mexx400
Здравствуйте. ROSA10/64/Plasma.
Подскажите, как работает anacron?
Допустим, есть некий исполняемый файл '/home/user/test':
Код: Выделить всё
#!/bin/bash
cp -f /home/user/name.txt /home/user/tmp
exit 0
Допустим, его надо запускать каждый день через 5 минут после старта ОС. Пишу:
Код: Выделить всё
sudo nano /etc/anacrontab
...
1 5 copy /home/user/test
Но ничего не происходит.
Никогда не было надо и вдруг понадобилось. Чего я не понимаю?
Помогите понять ancron
Добавлено: 04 мар 2019, 22:08
notauser
crond ежечасно (возможно с RANDOM_DELAY) проверяет выполнил ли сегодня
anacron задачи из /etc/cron.daily. Если нет - запускает, иначе - запустит завтра

.
anacron при запуске проверяет свои задачи (если сейчас не время из интервала START_HOURS_RANGE /etc/anacrontab результата не ждите). При этом ко времени (5 минут у вас) будет добавлен "произвольный" интервал, максимум которого задан в RANDOM_DELAY /etc/anacrontab.
Помогите понять ancron
Добавлено: 05 мар 2019, 11:50
mexx400
notauser, спасибо за ответ.
notauser писал(а): 04 мар 2019, 22:08
anacron при запуске проверяет свои задачи
"Свои" то есть в /etc/anacrontab. Это понятно. Но, в моем случае, счастья не наступает, хотя:
Код: Выделить всё
journalctl -b | grep anacron
мар 05 11:01:02 host anacron[16140]: Anacron started on 2019-03-05
notauser писал(а): 04 мар 2019, 22:08
crond проверяет ... выполнил ли сегодня
anacron задачи из /etc/cron.daily
Да, но тогда ведь задачи
anacron должны же лежать в /etc/cron.daily?
Но правка /etc/anacrontab их туда явно не вносит. Или вносит куда-то как симлинк?
В /etc/anacrontab есть:
Код: Выделить всё
1 5 cron.daily nice -n 19 run-parts /etc/cron.daily
То есть, как я это понимаю, каждый день через 5 минут после старта (с учетом RANDOM_DELAY и в период START_HOURS_RANGE, это понятно)
anacron должен выполнить все задачи в этом каталоге, если конечно
0anacron-timestamp меньше "сегодня", Так?
Помогите понять ancron
Добавлено: 06 мар 2019, 21:30
notauser
mexx400 писал(а): 05 мар 2019, 11:50
Да, но тогда ведь задачи anacron должны же лежать в /etc/cron.daily?
Точнее могут.
mexx400 писал(а): 05 мар 2019, 11:50
Но правка /etc/anacrontab их туда явно не вносит. Или вносит куда-то как симлинк?
И не должна. Расположение и условия запуска определяет /etc/anacrontab. Вы можете добавить свои как в /etc/cron.* (которые перечислены в /etc/anacrontab) так и непосредственно в /etc/anacrontab. В последнем случае могут быть дополнительные проблемы с синтаксисом.
mexx400 писал(а): 05 мар 2019, 11:50
если конечно 0anacron-timestamp меньше "сегодня"
Точнее "не равно".
Можете проверить работу очистив /var/spool/anacron/<имя_задачи> или полностью удалив файл (файлы) и запустив anacron вручную.
проверит /etc/anacrontab на ошибки (по крайней мере 1-ый параметр). journalctl -b | grep anacron должен выдать в том числе и список задач. В случае удаления файлов в /var/spool/anacron/ должны появится пустые файлы с именами соответствующими задачам. После выполнения в них запишется значение 0anacron-timestamp.
Помогите понять ancron
Добавлено: 07 мар 2019, 20:41
mexx400
notauser, вроде разобрался, работает, еще раз спасибо.
notauser писал(а): 06 мар 2019, 21:30
В последнем случае могут быть дополнительные проблемы с синтаксисом
Да, от root, без точек, абсолютные пути.
notauser писал(а): 06 мар 2019, 21:30
Точнее "не равно".
"Не равно" это и "больше" (ну мало ли). Разве в этом случае выполнит?