13

Я переношу crontabs отдельного пользователя в /etc/cron.d, так как это позволит обеспечить правильное резервное копирование, восстановление и управление версиями.

Насколько я понимаю, единственная разница между crontabs пользователя и etc заключается в том, что вы должны указать пользователя в качестве шестого столбца. Это правильно?

И мой главный вопрос, на который я нигде не мог найти ответ в Интернете: как правильно использовать @reboot в /etc/cron.d или /etc /crontab?

что-то вроде @reboot root command?

2 ответа2

15

Из справочной страницы crontab:

Вакансии в /etc/cron.d/

Задания в cron.d являются системными заданиями, которые обычно используются для более чем одного пользователя. Вот почему нужно имя пользователя. MAILTO в первой строке не является обязательным.

ПРИМЕР РАБОТЫ В /etc/cron.d/job

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

Вот и весь раздел о crontab в /etc, поэтому я предполагаю, что включение пользователя, от имени которого выполняется задание, действительно является единственным отличием.

Снова с той же страницы руководства:

Поддерживаются эти специальные "псевдонимы" спецификации времени, которые заменяют 5 начальных полей времени и даты и имеют префикс «@»:

@reboot: запускать один раз после перезагрузки.

Таким образом, ваш вывод о том, что правильный способ использования @reboot

   @reboot user_name command

правильно.

1

В случае /etc/crontab вам просто нужно добавить эти строки.

@reboot        command

Где команда может быть любым скриптом или отдельным файлом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .