задания крона - различие между редактированием “/etc/crontab” и “crontab-e”

Попытка настроить ежедневную газету cron задание для закрытия сервера.

Один источник предлагает редактировать /etc/crontab

Другой предлагает crontab -esudo)

Я судил последнего, и мой процесс не работал (если я вспоминаю, это было 30 23 * * * shutdown -h)

Я также отмечаю, что в нано редакторе, это работало над a .tmp файл? (вершина нано говорит: /tmp/crontab.9zeTNt/crontab )

Что продолжается? Как я могу зафиксировать это?

1
задан 6 April 2017 в 20:04

2 ответа

Когда Вы редактируете /etc/crontab, Вы редактируете глобальный crontab

, Когда Вы редактируете через crontab -e, Вы редактируете свой локальный, персональный. Редактор запускается на временном файле так, чтобы файл мог быть проверен, прежде чем он будет записан в свое реальное местоположение.

то, Когда Вы отредактировали и сохранили, и вышло из редактора (необходимо выйти из процесса для filecheck и копии - для появления), необходимо подтвердить, что получили сообщение, которым "новый crontab был установлен"

0
ответ дан 7 December 2019 в 15:38

crontab -e:

Применимый на на пользовательское основание; открывается cron таблица для пользователя вызова для редактирования (временный файл в /tmp/ например. /tmp/crontab.<RANDOM>/crontab, как Вы видели), и после сохранения содержания, проверки исправности сделаны. Если передано, файл перемещен в /var/spool/cron/crontabs/ т.е. cron каталог шпульки и сохраненный с именем файла, являющимся тем же как имя пользователя вызова. Как cron таблица сохранена для имени пользователя вызова (например. /var/spool/cron/crontabs/foobar, принятие имени пользователя foobar); как все cron задания выполняются как тот пользователь, таким образом, никакое поле имени пользователя не необходимо, для каждой записи здесь нужны 6 полей (Вы уже знаете их, я предполагаю),

/etc/crontab:

Это - система cron таблица (crontab файл), нет никакого понятия вызова пользователя здесь как, только суперпользователь может отредактировать этот файл, сделать этому файлу нужны 7 полей с дополнительным полем имени пользователя в разделенном 6-м поле пространства/вкладки. Это верно для всех cron файлы в /etc/cron.d/ также. Другое различие с crontab -e это, необходимо открыть файл как аргумент редактору или любой программе/оболочке, которая может сделать ввод-вывод тогда как с crontab -e файл был бы открыт с редактором, упомянутым как VISUAL или EDITOR или /usr/bin/editor - первые победы.


Почему Ваша команда перестала работать внутри cron:

Поскольку shutdown может только быть выполнен как суперпользователь или способные пользователи, и пользователь вызова, по-видимому, не попадает в ту категорию. Можно поместить в root crontab sudo crontab -e или помещенный это /etc/crontab, я обычно всегда предпочитаю таблицы отдельного пользователя.

Примечания:

Также cron использует минимальное PATH по умолчанию, и также SHELL установлен как sh (dash в Ubuntu); эти два распространены cron ловушки.

При отладке всегда проверяйте syslog, и перенаправьте STDOUT соответствующей команды и STDERR в файл для анализа позже.

1
ответ дан 7 December 2019 в 15:38

Другие вопросы по тегам:

Похожие вопросы: