Попытка настроить ежедневную газету cron
задание для закрытия сервера.
Один источник предлагает редактировать /etc/crontab
Другой предлагает crontab -e
(с sudo
)
Я судил последнего, и мой процесс не работал (если я вспоминаю, это было 30 23 * * * shutdown -h
)
Я также отмечаю, что в нано редакторе, это работало над a .tmp
файл? (вершина нано говорит: /tmp/crontab.9zeTNt/crontab
)
Что продолжается? Как я могу зафиксировать это?
Когда Вы редактируете /etc/crontab
, Вы редактируете глобальный crontab
, Когда Вы редактируете через crontab -e
, Вы редактируете свой локальный, персональный. Редактор запускается на временном файле так, чтобы файл мог быть проверен, прежде чем он будет записан в свое реальное местоположение.
то, Когда Вы отредактировали и сохранили, и вышло из редактора (необходимо выйти из процесса для filecheck и копии - для появления), необходимо подтвердить, что получили сообщение, которым "новый crontab был установлен"
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 в файл для анализа позже.