- Выключение и запуск по расписанию Linux
- Планирование включения в Linux
- Выводы
- Автоматическое выключение компьютера linux mint
- Завершение работы компьютера с ОС Linux по таймеру
- Отключить компьютер в заданное время
- 2 ответа 2
- Объяснение подробнее.
- Автоматическое выключение компьютера на любом дистрибутиве Linux
- Никакого графического интерфейса или дополнительных программ
- Используем системную (встроенную) команду
- Подведем итоги
Выключение и запуск по расписанию Linux
Операционная система Linux позволяет планировать запуск, завершение или переход компьютера в режим сна в нужное вам время. Например, вы можете запланировать запуск компьютера утром и автоматическое выключение когда ложитесь спать.
Иногда это очень даже полезно, вы экономите время, в место того чтобы ждать пока загрузится операционная система, можно сразу садится и работать, и это просто удобно. Можно запланировать включение компьютера по расписанию, даже после завершения работы скрипта.
Планирование включения в Linux
В Linux для завершения работы или перехода в режим сна и планирования запуска, используется утилита rtcwake. Это встроенный в ядро инструмент, поэтому она уже есть во всех дистрибутивах и устанавливать ничего не придется. Синтаксис команды такой:
$ sudo rtcwake –m режим –s время
$ sudo rtcwake –m режим –t время
После выполнения команды компьютер сразу выключится. Параметр -s указывает количество секунд до запуска компьютера. Опция -m устанавливает режим выключения. Дело в том что компьютер выключается не полностью, он переходит в сон, при котором питание подается только на несколько самых важных компонентов. Эти компоненты и определяет режим, указанный в этом параметре. Доступные режимы:
- standby (S1) – режим с минимальным энергосбережением, компьютер очень быстро засыпает и так же быстро восстанавливается. Этот режим используется по умолчанию;
- mem – (S3) – все компоненты системы отключаются кроме памяти;
- disk(S4) – Все содержимое памяти записывается на диск;
- off (S5) – Аналогично вызову команды shutdown;
- on – без отключения, используется для отладки.
А теперь давайте рассмотрим основные опции команды rtcwake Linux:
- -a — определить какое время использовать локальное или UTC на основе файла /etc/adjtime;
- —date — указать дату включения компьютера, доступны такие варианты: YYYY-MM-DD hh:mm:ss, YYYY-MM-DD (время будет установлено в 00:00), hh:mm:ss (дата будет установлена на сегодня), tomorrow (завтра в 00:00);
- -l, —local — использовать локальное время, а не UTC;
- —list-modes — вывести доступные режимы планирования включения;
- -m, —mode — выбрать режим планирования;
- -n, —dry-run — тестовый запуск;
- -t — время следующего запуска в формате Unix, в секундах, прошедших с 01-01-1970;
- -u, —utc — использовать UTC время вместо локального;
- -v — максимально подробный вывод.
Например, следующая команда переводит компьютер в режим сна и планирует включение через 3 минуты:
Время запуска можно задавать не только в секундах от текущего момента, но и в формате полной даты и времени. Это делается с помощью опции -t, но эта опция принимает время в формате UNIX, поэтому сначала нужно преобразовать наше, обычное время, в этот формат с помощью date.
Например, давайте включим компьютер завтра в 13.00, допустим сегодня 10 сентября 2016. Сначала преобразуем данные:
Выключаем компьютер и планируем запуск по расписанию:
rtcwake -m mem -t 1473541200
Чтобы запланировать выключение Linux по расписанию или переход в режим сна будем использовать cron. Просто запланируйте выполнение команды rtcwake через crontab в нужное время для выключения компьютера и планирования последующего включения. Например, выполняем выключение компьютера Linux вечером и выполнить запуск по расписанию linux с утра:
0 21 * * * /usr/bin/rtcwake -m mem -s 28800
Если вам не нужно включать компьютер, а только выключить, можете вместо предыдущей команды использовать shutdown:
0 21 * * * /usr/bin/shutdown -h now
Вот и все. Подробнее о том, как настраивается расписание задач в cron смотрите здесь.
Выводы
Теперь вы знаете как запланировать запуск, выключение или переход в режим сна в Linux. Это не сложно и в некоторых ситуациях может очень помочь. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Автоматическое выключение компьютера linux mint
Завершение работы компьютера с ОС Linux по таймеру
Как всем давно известно, компьютер, работающий под управлением Linux, может работать круглосуточно годами. Но большинство пользователей предпочитают выключать свой компьютер или ноутбук после завершения работы или после того, как будет выполнена автоматическая работа, которая не требует вмешательства человека. Для достижения данной цели можно воспользоваться командой shutdown .
Внимание! Команда shutdown может быть выполнена только от имени суперпользователя (root). Чтобы выполнять команды от имени суперпользователя, нужно перед выполнением команды написать sudo . Также можно воспользоваться командой su и после этого вводить команды в терминал без написания sudo .
Shutdown — консольная команда Linux, служащая для для выключения или перезагрузки машины.
Из основных параметров (options) следует отметить два:
- -r — перезагрузить систему;
- -h — полная остановка системы (с таким параметром компьютер будет выключен).
Параметром TIME можно задать время, когда будет выполнена команда. Указание этого параметра необязательно — если вы не укажите время, то команда выполнится немедленно. Можно указать время, через которое выполнится команда: +20 (через 20 минут); или явно указать время, когда следует выполнить команду: 15:20 (в 15 часов 20 минут).
Например, чтобы выключить компьютер через 20 минут, следует выполнить:
Для того, чтобы выключить в 15:20:
Для перезагрузки системы сейчас:
Хотя перезагрузиться проще так:
У вас недостаточно прав для того чтобы тут гадить.
Отключить компьютер в заданное время
Я хочу, чтоб моя 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, который привлекли мое внимание к такой возможности.
Обратите внимание, что в таблице конкретного пользователя формат задачи немного другой, там не нужно указывать пользователя. Вместо
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
Наверняка многие из вас задумывались о том, чтобы ограничить время использования компьютера. Это может быть необходимым для себя, детей или родственников. Ниже расскажу о простом способе, благодаря которому можно настроить автоматическое отключение компьютера на любом дистрибутиве Linux.
Никакого графического интерфейса или дополнительных программ
Пока мы находимся в начале статьи, хочу сразу сказать, что способ будет завязан на терминале и командной строке, без какого-либо GUI или установок дополнительного софта. Почему? Да потому, что в таком случае способ действительно является универсальным, не зависит от дистрибутива и среды рабочего окружения, будет работать как локально, так и при удаленном подключении к другому устройству (например, по SSH).
Используем системную (встроенную) команду
Для настройки автоматического выключения используем команду shutdown. Она предназначена для выключения или перезагрузки компьютера, а также позволяет перезагрузить или выключить компьютер в заданное время или через заданный интервал времени.
Как видим, уже в описании команды дается полноценное решение нашей задачи. Открываем терминал и вводим туда всего три слова:
Вместо часов и минут необходимо вставить то время, в которое вы желаете выключить устройство. Возьмем для примера Linux Mint, который установлен в виртуальной машине. Запланируем выключение в 01:32.
Обращаю внимание на то, что отменить заданное время можно при помощи команды shutdown -c (cancel — отмена). Вместо конкретного времени можно указать временной промежуток, спустя который устройство должно будет выключиться:
Чтобы выключить компютер спустя минуту, вводим соответственно:
Получается, что можно включить компьютер, например, с утра и сразу открыв терминал, запланировать время выключения и не возвращаться более к этому вопросу. Главное помнить, что автоотключение настроено, чтобы его начало не застало врасплох.
Заранее заданные временные отрезки или конкретное время выключения можно использовать, как алиасы и впоследствие не вводить даже и тот вариант команды, который описан выше: достаточно будет внести название алиаса, например s10, чтобы устройство выключилось через 10 минут. Про алиасы и их создание рассказывал в отдельной статье на канале.
Как говорилось в начале, при помощи команды shutdown можно также запланировать перезагрузку устройства. Чтобы узнать, как это сделать, воспользуйтесь командой man shutdown , которая выведет справку по команде и ключам для ее использования.
Подведем итоги
Насколько сложно использовать указанную выше команду? Необходимо для ее использования знания английского языка и углубленное понимание принципов работы Linux-дистрибутивов? Думаю, что нет, поэтому все поборники GUI-шек и противники терминала могут даже не пытаться в комментариях что-то там возмущенно строчить. Описанный метод прост, понятен и удобен в использовании.
Честно говоря, я не знаком даже со способами, позволяющими решить задачу по автоматическому отключению устройства посредством графического интерфейса. Знаю, что в GNOME есть расширение, изменяющее меню управления питанием и позволящее ползунками настроить точное время отключения. По поводу KDE, думаю, тоже что-то есть подобное, но не встречал и не использовал.
Это случай, когда терминал в полном объеме позволяет реализовать то, что нужно пользователю и не требует от него никаких навыков, кроме умения набирать текст на клавиатуре.