cron jobs - разница между редактированием & ldquo; / etc / crontab & rdquo; и & ldquo; crontab -e & rdquo;

Проблема заключается в том, что вы укажете только cdrom в качестве источника установки. Образ сервера не содержит ubuntu-desktop.

Моим обходным путем является добавление сетевого источника:

# Installation media. Use both CD-ROM and Net
cdrom
url --url http://archive.ubuntu.com/ubuntu

В идеале можно было бы добавить пакеты в master iso, но Я еще не узнал, как это сделать.

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

6 ответов

crontab -e:

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

crontab -e:

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

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

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

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

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

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

0
ответ дан 18 July 2018 в 15:25

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

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

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

0
ответ дан 18 July 2018 в 15:25

crontab -e:

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

crontab -e:

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

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

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

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

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

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

0
ответ дан 24 July 2018 в 20:38

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

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

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

0
ответ дан 24 July 2018 в 20:38
  • 1
    спасибо, я думаю, я понимаю. поэтому мне нужно просто отредактировать / etc / crontab? – ABC123 6 April 2017 в 20:04
  • 2
    Так и будет. При тестировании и проверке все работает * * * * * date > /home/yourname/crontest – taifwa 6 April 2017 в 20:08
  • 3
    «Когда вы редактировали, сохраняли и выходили из редактора (вы должны выйти из процесса для файла и выполнить копирование), вам нужно подтвердить, что у вас есть сообщение, по которому« новый crontab был установлен »& quot; можете ли вы подробно остановиться на этом? я не получал это сообщение, и может быть, где проблема? – ABC123 6 April 2017 в 20:42

crontab -e:

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

crontab -e:

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

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

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

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

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

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

0
ответ дан 31 July 2018 в 23:39

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

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

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

0
ответ дан 31 July 2018 в 23:39
  • 1
    спасибо, я думаю, я понимаю. поэтому мне нужно просто отредактировать / etc / crontab? – ABC123 6 April 2017 в 20:04
  • 2
    Так и будет. При тестировании и проверке все работает * * * * * date > /home/yourname/crontest – taifwa 6 April 2017 в 20:08
  • 3
    «Когда вы редактировали, сохраняли и выходили из редактора (вы должны выйти из процесса для файла и выполнить копирование), вам нужно подтвердить, что у вас есть сообщение, по которому« новый crontab был установлен »& quot; можете ли вы подробно остановиться на этом? я не получал это сообщение, и может быть, где проблема? – ABC123 6 April 2017 в 20:42

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

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