Как использовать @reboot в /etc/cron.d


17

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

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

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

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

Ответы:


20

Из справочной страницы 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

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


Это работает? /etc/crontabобычно требует имя пользователя.
Mwfearnley

1

Если вы запускаете его в интерактивном режиме, как показано ниже, вы не указываете пользователя:

crontab -e
@reboot /root/mycommand

Если вы помещаете его как файл в /etc/cron.d, например /etc/cron.d/mycronfile, вам нужно поместить пользователя:

@reboot root /root/mycommand
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.