Linux shutdown по времени

Отключить компьютер в заданное время

Я хочу, чтоб моя Ubuntu автоматически отключалась каждый день в определенное время. Как этого можно добиться?

2 ответа 2

На помощь нам придет юниксный демон по имени cron .
Для того, чтобы поставить задачу в расписание, мы добавим ее в файл /etc/crontab .
Открываем терминал — Ctrl Alt T .
Файл можно редактировать такой командой:

Для отключения компьютера каждый день в 23:03 добавим в файл такую строчку:

03 23 * * * root shutdown -h now 

Последняя строчка файла должна быть пустая.

Эта часть была написана по мотивам askubuntu.

Объяснение подробнее.

В самом этом файле /etc/crontab объясняется формат таблицы задач:

# m h dom mon dow user command 

Первые два поля — минута и час запуска задачи,
3-е поле (dom) — день месяца (Day of Month),
затем месяц,
5-е поле (dow) — день недели,
затем пользователь, от чьего имени будет запускаться команда,
и, собственно, команда.

Время запуска
Все условия (времени запуска) проверяются по «логическому И», кроме условий «день недели» и «день месяца» — указанные совместно, они обрабатываются по «логическому ИЛИ», то есть «по любому из дней», что отражено в документации (Ubuntu, Debian, FreeBSD). (См. Википедия, man 5 crontab ). Если вы хотите проверять их по «логическому И», делайте это в самой команде.

Например, перезагрузка в пятницу, 13-го:

0 0 13 * * root [ "$(date '+\%u')" -eq 5 ] && shutdown -r now 

Crontab пользователя.
Кроме общей таблицы crontab, каждый пользователь имеет свою. Свою личную таблицу можно редактировать командой

Таблицу другого пользователя, например, ‘root’-а, можно редактировать командой

В первоначальном вопросе правильнее, я думаю, было бы использовать именно этот вариант.
Если в системе есть всего один пользователь, то можно отключать компьютер и через него, и через ‘root’, без разницы.

Спасибо господам 0andriy и Sergey, который привлекли мое внимание к такой возможности.

Читайте также:  Linux appimage чем открыть

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

03 23 * * * root shutdown -h now 

Переменные окружения
Популярная причина проблем с работой crontab — другое определение переменных окружения при работе демона cron , особенно переменной $PATH .
Вы можете узнать переменные окружения cron -а, вставив в crontab строчку

После того, как файл /tmp/env.output создан, эту строчку можно убрать.
Оказывается, в Ubuntu cron запускается с PATH=/usr/bin:/bin . Для корректной работы нужно определить правильный $PATH в самом файле crontab .
Обратите внимание, что значение переменных не подставляется, то есть

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

Если вы запускаете программы с GUI, вам также надо определить $DISPLAY:

Да, и не забывайте в конце crontab -а вставлять пустую строчку.

Вторая часть ответа была написана по мотивам вопроса о проблемах работы с crontab -ом на askubuntu.
Спасибо всем комментаторам за плодотворную дискуссию.

Источник

Выключение и перезагрузка Linux. Shutdown и Reboot

Выключение и перезагрузка Linux

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

Синтаксис команды shutdown

shutdown [опции] [время] [сообщение]

[опции] — указывает действие, которое необходимо выполнить.
[время] — время или интервал для выполнения действия.
[сообщение] — сообщение, рассылаемое залогиненным пользователям.

Перезагрузить систему

Для перезагрузки системы используется ключ -r . Чтобы немедленно запустить перезапуск системы используется команда:

Для перезагрузки Linux также можно использовать команду reboot. Она является аналогом команды shutdown -r . Для перезагрузки Linux из командной строки, с использованием команды reboot, необходимо выполнить:

Выключить компьютер

Чтобы корректно завершить систему и выключить компьютер используется команда:

Также можно использовать команду reboot с ключом -p :

Перезагрузка или выключение Linux по времени

Для команды shutdown можно указать точное время или интервал времени, через который необходимо перезагрузить или выключить систему. Рассмотрим примеры.

Выключить систему через 15 минут:

Выключить систему в 13 часов 10 минут:

Перезагрузить систему через 10 минут:

Отправка сообщения перед перезагрузкой или выключением

Если система используется несколькими пользователями, то бывает полезно предупредить их перед выполнением перезагрузки или выключением системы. Для этого в конце команды shutdown пишется соответствующее сообщение:

sudo shutdown 15:30 "Save your data! System will be shutdown at 15:30."

Отмена запланированной перезагрузки или выключения

Если вы выполнили команду shutdown и установили соответствующее время для ее выполнения, то чтобы отменить данное действие используется ключ -c :

Читайте также:  Oracle linux yum server

Дополнительную информацию по командам shutdown и reboot можно получить, выполнив

К перезагрузке или выключению компьютера из командной сроки Linux иногда прибегают, когда «система» или какой-нибудь процесс или группа процессов серьезно повисла. Смотрите также как завершать процессы, используя команду kill.

Источник

Linux shutdown по времени

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Завершение работы компьютера с ОС Linux по таймеру

Как всем давно известно, компьютер, работающий под управлением Linux, может работать круглосуточно годами. Но большинство пользователей предпочитают выключать свой компьютер или ноутбук после завершения работы или после того, как будет выполнена автоматическая работа, которая не требует вмешательства человека. Для достижения данной цели можно воспользоваться командой shutdown .

Внимание! Команда shutdown может быть выполнена только от имени суперпользователя (root). Чтобы выполнять команды от имени суперпользователя, нужно перед выполнением команды написать sudo . Также можно воспользоваться командой su и после этого вводить команды в терминал без написания sudo .

Shutdown — консольная команда Linux, служащая для для выключения или перезагрузки машины.

Из основных параметров (options) следует отметить два:

  • -r — перезагрузить систему;
  • -h — полная остановка системы (с таким параметром компьютер будет выключен).

Параметром TIME можно задать время, когда будет выполнена команда. Указание этого параметра необязательно — если вы не укажите время, то команда выполнится немедленно. Можно указать время, через которое выполнится команда: +20 (через 20 минут); или явно указать время, когда следует выполнить команду: 15:20 (в 15 часов 20 минут).

Например, чтобы выключить компьютер через 20 минут, следует выполнить:

Для того, чтобы выключить в 15:20:

Для перезагрузки системы сейчас:

Хотя перезагрузиться проще так:

У вас недостаточно прав для того чтобы тут гадить.

Источник

How to shutdown Linux at specific datetime from terminal?

It seems I can shutdown using sudo shutdown by specifying a time or minutes. Is there a way to specify datetime for shutdown?

5 Answers 5

You can do this directly from the shutdown command , see man shutdown :

SYNOPSIS /sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message] [. ] time When to shutdown. 

That will run shutdown -h at 21:45.

Читайте также:  Linux поменять пароль sudo

For commands that don’t offer this functionality, you can try one of:

A. Using at

The at daemon is designed for precisely this. Depending on your OS, you may need to install it. On Debian based systems, this can be done with:

There are three ways of giving a command to at :

$ echo "ls > a.txt" | at now + 1 min warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013 
$ echo "ls > a.txt" > cmd.txt $ at now + 1 min < cmd.txt warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013 
$ at now + 1 min warning: commands will be executed using /bin/sh at> ls 

You can give very precise times in the format of [[CC]YY]MMDDhhmm[.ss] , as in

This will run the script script.sh at 21:34 and 12 seconds on the 14th of March 2014.

B. Using cron (though this not a good idea for shutdown)

The other approach is using the cron scheduler which is designed to perform tasks at specific times. It is usually used for tasks that will be repeated but you can also give a specific time. Each user has their own "crontabs" which control what jobs are executed and when. The general format of a crontab is:

* * * * * command to be executed - - - - - | | | | | | | | | +----- day of week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59) 

So, for example, this will run ls every day at 14:04:

To set up a cronjob for a specific date:

  1. Create a new crontab by running crontab -e . This will bring up a window of your favorite text editor.
  2. Add this line to the file that just opened. This particular example will run at 14:34 on the 15th of March 2014 if that day is a Friday (so, OK, it might run more than once):

This SO answer suggests a way to have it run only once but I have never used it so I can't vouch for it.

Источник

Оцените статью
Adblock
detector