[SOLVED] Выполнение программ по расписанию на машинах, не работающих круглосуточно
Есть ноутбук, и есть задачи, которые нужно выполнять на нём по расписанию (раз в сутки, раз в неделю).
Ноутбук может работать 24/7, а может включаться на полчаса-час раз в месяц, потому от crontab толку никакого и ещё меньше пользы от *at(1)*.
Хотелось бы какое-нибудь удобоваримое решение задачи с таким неопределённым расписанием работы устройства. Пусть оно будет реже (если ноут долго не включали), но не чаще (то есть `@reboot` не подходит).
Из утилит доступно: cron (vixie-cron), at, rc.
Могу доустановить софт из бинарных пакетов или собрать из портов. Но не требующее `COMPAT_LINUX`.
Скрипты (sh, perl, python3) подойдут. Псевдокод с приблизительной логикой тоже рассматривается.
`systemd` не предлагать (по очевидным причинам).

FreeBSD 12.1-RELEASE-p3
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
Гхм. Вроде anacron под это определение подходит. /etc/anacrontab и аналогично стандартному крону. Если задача была пропущена - она выполняется по @reboot. Насколько помню, в FreeBSD оно в портах должно быть - вряд ли выпилили. Собственно, по поводу
Цитата:COMPAT_LINUX
я не уверен, но вроде там ничего такого быть не должно если верно помню.
Ответ
lonelywoolf post_id=96 time=1585637433 user_id=56 Написал:Гхм. Вроде anacron под это определение подходит. /etc/anacrontab и аналогично стандартному крону. Если задача была пропущена - она выполняется по @reboot. Насколько помню, в FreeBSD оно в портах должно быть - вряд ли выпилили. Собственно, по поводу
Цитата:COMPAT_LINUX
я не уверен, но вроде там ничего такого быть не должно если верно помню.

anacron в пакетах/портах есть.
Насколько я понимаю, с системным cron оно будет конфликтовать? Но если это решает задачу — почему бы и не заменить.
Благодарю за наводку, будем посмотреть.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
Цитата:с системным cron оно будет конфликтовать?
Не знаю, как в FreeBSD, а в линуксах этот пакет у меня системный крон не заменял. В той же CentOS стоит cronie и отдельно пакет cronie-anacron. У anacrontab отдельный файл конфигурации, как я понимаю, он дёргает тот же системный крон каким-то образом.
Ответ
Нет, заменить оно по определению не может — весь установленный софт идёт в `/usr/local`. Вопрос только в именовании бинарей и пересечении в задачах.

```
=====
Message from anacron-2.3_6:

--
Configuration hints:
- Edit /usr/local/etc/anacrontab
- Deactivate the 'periodic' commands in /etc/crontab
- Add a call to anacron to /etc/crontab, like
0 0 * * * root /usr/local/sbin/anacron
- Add anacron_enable="YES" to /etc/rc.conf
- Read anacron(8) and anacrontab(5)
```

Периодики я, конечно, переводить на anacron не стану, но в остальном подходит.

Судя по документации — то что надо! И с vixie-cron (из базовой системы) не конфликтует, и задачу покрывает в полной мере. Функциональность anacrontab скудная, но большего и не надо.

Благодарю.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
Найдена убервафля в виде fcron, будем посмотреть, как она заменяет vixie-cron+anacron…

UPD: fcron слишком комбайн для этой задачи. В отличие от, предложенный выше anacron ничего не ломает и не требует всё конвертировать/переписывать.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ