Выключение компьютера таймеру 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 — максимально подробный вывод.
Читайте также:  Графический интерфейс kde linux

Например, следующая команда переводит компьютер в режим сна и планирует включение через 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

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

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

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

Читайте также:  Операционные системы apple linux

Внимание! Команда 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) — день недели,
затем пользователь, от чьего имени будет запускаться команда,
и, собственно, команда.

Читайте также:  Где хранятся log файлы linux

Время запуска
Все условия (времени запуска) проверяются по «логическому И», кроме условий «день недели» и «день месяца» — указанные совместно, они обрабатываются по «логическому ИЛИ», то есть «по любому из дней», что отражено в документации (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.
Спасибо всем комментаторам за плодотворную дискуссию.

Источник

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