====== Выключение и запуск по расписанию 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 минуты: $ rtcwake -m mem -s 180 Время запуска можно задавать не только в секундах от текущего момента, но и в формате полной даты и времени. Это делается с помощью опции -t, но эта опция принимает время в формате UNIX, поэтому сначала нужно преобразовать наше, обычное время, в этот формат с помощью date. Например, давайте включим компьютер завтра в 13.00, допустим сегодня 10 сентября 2016. Сначала преобразуем данные: $ date +%s -d "2016-09-11 13:00" Выключаем компьютер и планируем запуск по расписанию: $ rtcwake -m mem -t 1473541200 Чтобы запланировать выключение Linux по расписанию или переход в режим сна будем использовать cron. Просто запланируйте выполнение команды rtcwake через crontab в нужное время для выключения компьютера и планирования последующего включения. Например, выполняем выключение компьютера Linux вечером и выполнить запуск по расписанию linux с утра: $ crontab –e 0 21 * * * /usr/bin/rtcwake -m mem -s 28800 Если вам не нужно включать компьютер, а только выключить, можете вместо предыдущей команды использовать shutdown: 0 21 * * * /usr/bin/shutdown -h now Вот и все. Подробнее о том, как настраивается расписание задач в cron смотрите здесь.[[https://losst.pro/kak-dobavit-komandu-v-cron|смотрите здесь.]] ===== Дополнения и Файлы ===== [[https://losst.pro/zapusk-i-zavershenie-po-raspisaniyu-v-linux|Ссылка на оригинальную статью]]