Я хочу остановить 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, поэтому объясните с так же очень максимально деталями.
править: хорошо, таким образом, я нашел решение, я просто должен установить команду за один час до желаемого времени. Я не знаю, почему, но это работает. Спасибо за всех справка.
Из соображений безопасности КРОН использует очень минимальную среду оболочки. Это включает минимальный ПУТЬ и ДОМАШНИЕ переменные. В большинстве случаев Вы хотите использовать полные пути для всех команд.
Так, я предложил бы Вас первый показ:
$ 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
, и т.д. Это - хорошее чтение.
Попробуйте его сайт http://cron.schlitt.info, Чтобы знать, ли Ваша команда или Вы конфигурация времени, попробуйте также init 0 (выключаются) и init 6 (перезапуск).