Собственно вопрос в заголовке
Зачем шаблонами править файл /etc/crontab
, когда правилом хорошего тона является добавлять свои конфиги для cron
-а в директорию /etc/cron.d/
в файл с “говорящим названием”?
PS
Кстати, как я понял, в /etc/crontab
прописывается рандомная минута запуска этого скрипта.
Но, в таком случае, на каждой машине конфиг будет отличаться от других, что не очень правильно с точки зрения переносимости и масштабирования.
Может проще было бы прописать в него скрипт запускающий обновление в произвольную (определяемую один раз при включении компа) минуту?
К примеру в такой:
#!/bin/sh
[[ $(stat -c%y /proc/1| sed -e 's/\..*$//' -nre 's/.*:.*:([0-9]+)/\1/p') == $(date '+%M') ]] || exit 0
[ $(cut -d. -f1 < /proc/uptime) -gt 300 ] || exit 0
/usr/bin/nice -n19 /usr/sbin/cl-update -p --wait-another-update off &>/dev/null
Тут проверяется соответствие текущей минуты с секундой модификации директории /proc/1
(по сути - секундой передачи управления от ядра /sbin/init
команде. Достаточно рандомный параметр).
Вторая проверка нужна, чтоб обновление не запускалось в течение первых 5 минут работы компьютера, поскольку это, в случае “удачного совпадения”, может отрицательно сказаться на скорости загрузки @
@
В этом случае конфиг cron-а запускающий поиск обновлений будет во-первых принадлежать только пакету sys-apps/calculate-update
, и с обновлением/удалением (мало ли что пользователь захочет изменить) и/или этого пакета, и/или vixie-cron
, все будет проходить гладко @
@
Так же, файл /etc/cron.d/calculate-update
(или как вы его назовете), как и скрипт на три строки, приведенный выше, можно будет устанавливать прямо из ebuild-а пакета sys-apps/calculate-update
. что, наверно, гораздо правильнее, чем лезть в конфиг шаблонами, да и просто надежнее @
@
И наконец - пользователи, захотевшие отказаться от этого способа обновления, смогут легко это сделать, создав шаблон, удаляющий этот файл.