В поразительной демонстрации педантизма мы с коллегой буквально днями спорили о предполагаемом использовании различных мест для проживания кронтаба.
В основе дела лежит сценарий резервного копирования, который мы используем для передачи нашим клиентам архивов их данных. Некоторым нужно это еженедельно, а другим - точно в определенный день каждого месяца, поэтому наш текущий crontab довольно длинный. В самой утилите нет ничего экзотического, просто небольшой скрипт узла, который периодически запускается с переданными ему различными наборами идентификаторов клиентов.
Поскольку все они функционально равны, в каком месте утилиты лучше всего размещать файл crontab?
sudo crontab -e
)/etc/crontab
или /etc/cron.d
TL: DR; Каково предполагаемое использование различных расположений cron? И где должно быть расписание для утилиты, которая должна работать без вмешательства человека?
Поскольку это работа, которая является функцией системы, я бы сказал, что используйте системный crontab. Что касается того, то я не думаю, что есть какое-то различие, и я не видел никакого направления, даже ФСГ нечего сказать. В системе CentOS 7 мне нужно передать man crontab (5) говорит
Вакансии в /etc/cron.d/
Задания в cron.d и / etc / crontab - это системные задания, которые обычно используются более чем для одного пользователя, поэтому требуется дополнительное имя пользователя. MAILTO в первой строке не является обязательным.
Я бы использовал /etc/cron.d
Я лично предпочитаю делать то, что is the English way
ответил, но в интересах справедливости и так далее, я чувствую себя обязанным поделиться тем, что я приставал к Полу Викси (настолько высокому авторитету в этом вопросе, насколько я мог думать) по этому поводу. Он ответил, что это находится в личном crontab root.
Я: - системный cron (/ etc / crontab или его абстракции) vs личный crontab root.
П Викси: ах. в этом случае поместите его в личный crontab root и попробуйте использовать системный crontab только для работы с ОС (то есть вообще не изменяйте его).