команда завершения работы крона, не работающая

Я хочу остановить Linux каждый день в 1:00 с кроном.

То, что я попробовал: sudo -i, crontab -e и 00 01 * * * shutdown -h now в терминале.

Я попробовал много подобных команд как 00 01 * * * poweroff, но эти команды никогда не работают. Я сохраняю crontab с ctrl 0 + входят, затем путем выполнения ctrl X. Когда я собираюсь оставить консоль, я не вижу ошибок, я только вижу, что crontab был успешно установлен.

Я использую x2go для доступа к Linux, и я не могу войти в систему непосредственно как корень. Когда я пытаюсь войти в систему как корень, у меня есть ошибка:

ttyname привел несоответствующий ioctl к сбою для устройства

Когда я перешел через свои файлы, я заметил, что не могу получить доступ к корневой папке, потому что у меня нет разрешения.

Я думаю, что проблема может состоять в том, что у меня нет корневого доступа, но sudo -i должен предоставить мне корневой доступ. Я также пытался включить корневой доступ путем ввода команды sudo passwd root затем ввод su root.

Это - мой первый раз с помощью Linux, поэтому объясните с так же очень максимально деталями.

править: хорошо, таким образом, я нашел решение, я просто должен установить команду за один час до желаемого времени. Я не знаю, почему, но это работает. Спасибо за всех справка.

0
задан 22 March 2020 в 20:05

2 ответа

Из соображений безопасности КРОН использует очень минимальную среду оболочки. Это включает минимальный ПУТЬ и ДОМАШНИЕ переменные. В большинстве случаев Вы хотите использовать полные пути для всех команд.

Так, я предложил бы Вас первый показ:

$ which shutdown
/sbin/shutdown

Теперь Вы знаете полный путь к той команде, и Вы хотите использовать это в своем определении КРОНА:

0 1 * * * /sbin/shutdown -h now

Если Вы хотите добавить переменные к оболочке (или нуждаются к тому, для выполнения определенных команд), можно добавить или обновить их наверху файла. Например:

PATH=/sbin:${PATH}
HOME=/root

0 1 * * * /sbin/shutdown -h now

Следует иметь в виду, что обработка пробелов и вкладок отличается (см. документы для деталей).

Одна переменная, которая часто обновляется, MAILTO=<your-email>. По умолчанию электронные письма будут посланы root для корневой учетной записи. Я предпочитаю использовать псевдоним (часто определяемый в /etc/aliases). Псевдоним позволяет мне посылать электронные письма нескольким администраторам вместо всего одного человека.

Для становления корнем я использую следующее:

sudo su -

который я нахожу инструментом для очистки, чем много других решений. Можно затем отредактировать crontab из пользователя root с:

crontab -e

Поскольку Вы показали в своем вопросе.

Иначе продвижение обнуляет, вероятно, хорошо. Я никогда не помещал их там, и примеры не показывают такой. На всякий случай я попробовал бы без них, поскольку я показал выше.

Для получения дополнительной информации я предположил бы, что Вы читаете crontab руководства:

man crontab
man 5 crontab

Первый - о командной строке.

Второй - о формате файла. Они говорят о переменных оболочки. PATH, MAILTO, и т.д. Это - хорошее чтение.

2
ответ дан 7 April 2020 в 23:30

Попробуйте его сайт http://cron.schlitt.info, Чтобы знать, ли Ваша команда или Вы конфигурация времени, попробуйте также init 0 (выключаются) и init 6 (перезапуск).

0
ответ дан 7 April 2020 в 23:30

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

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