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 – без отключения, используется для отладки.

Например, следующая команда переводит компьютер в режим сна и планирует включение через 3 минуты:

Время запуска можно задавать не только в секундах от текущего момента, но и в формате полной даты и времени. Это делается с помощью опции -t, но эта опция принимает время в формате UNIX, поэтому сначала нужно преобразовать наше, обычное время, в этот формат с помощью date.

Например, давайте включим компьютер завтра в 13.00, допустим сегодня 10 сентября 2016. Сначала преобразуем данные:

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

Чтобы запланировать выключение linux по расписанию или переход в режим сна будем использовать cron. Просто запланируйте выполнение команды rtcwake через crontab в нужное время для выключения компьютера и планирования последующего включения. Например, выполняем выключение компьютера linux вечером и выполнить запуск по расписанию linux с утра:

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

Вот и все. Подробнее о том, как настраивается расписание задач в cron смотрите здесь.

Выводы

Теперь вы знаете как запланировать запуск, выключение или переход в режим сна в Linux. Это не сложно и в некоторых ситуациях может очень помочь. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Включение ubuntu по расписанию

Да-да, ты не ослышался именно ВКЛЮЧЕНИЕ

Откуда ноги растут

У меня дома стоит небольшой серверок, он очень полезный, работает в качестве vpn, чтобы скорость была побольше, об этом как-нибудь в другой раз. Одна из его проблем, которая жутко нервирует — он шумный. Нужен он только в рабочее время, поэтому по приходу домой я его стараюсь выключать. Сложность выключения в том, что из интерфейсов общения с внешним миром на сервере есть только ssh. Нет, можно, кончено, где-то наковырять отдельную клавиатуру, монитор и по необходимости набирать команду на выключение. Только куда всё это добро я буду ставить это во-вторых, а во-первых, не бюджетненько получается.

Читайте также:  Статистика оперативной памяти linux

Итого мои ежедневные будничные действия имели подобный порядок: по возвращении домой включал ноут, конектился по ssh к серверу и останавливал его. Иногда было лень и вырубал его с кнопки, что в целом не страшно, но внутренний голос каждый раз мне говорил «не надо так». Вот только каждый раз включать ноут, чтобы корректно завершить работу сервера иногда просто лень, у меня бывают периоды когда я все выходные могу не запускать ноутбук вообще. Поэтому пошел читать интернеты как научить ubuntu (на сервере стоит именно она, причем серверная версия без иксов) автоматически саму себя выключать, но это просто, главный вопрос был, как сделать автоматическое включение.

Как решается

Первым что приходит в голову, что можно будить сервер по сети. Вариант интересный, но я заленился и это надо в биос лезть, а у меня дома нет отдельного монитора чтобы посмотреть настройки биоса. Но в конечном итоге всё равно надо будет сделать, чтобы в случае непредвиденного завершения работы можно было без физического доступа разбудить машину. Это как минимум удобно.

Дальнейшее гугление методом нехитрых словесных вариаций выдало мневариант использования утилиты rtcwake. Как понятно из названия это как раз ОНО. Собственно, сама команда имеет нехитрый формат, который в большинстве случаев будет сведен к подобному

Да, команда должна выполняться от root’а, о чем говорит шарп в начале строки.

Ключик -m указывает на тип засыпания системы (так-то в мане всё описано, но вдруг тебя в терминале забанили? А зачем тебе тогда команды для теминала?):

  • standby (S1) — режим используется по умолчанию, минимальное энергопотребление быстрый отбой и подъем
  • freeze — Процессы заморожены, все устройства приостановлены и процессоры работают на холостом ходу, Говорят потребляет меньше энергии чем mem, но появилось с в ядре с версии 3.9
  • mem (S3) — Питание остается только на ОЗУ и инфа на ОЗУ тоже храниться;
  • disk (S4) — Всё ОЗУ выгружается на диск (думаю с SSD практически такой же быстрый вариант как и mem);
  • off (S5) — Аналогично вызову команды shutdown, и смысл?);
  • on — без отключения, используется для отладки.

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

Про ключики -s и -t, первый указывает количество секунд, через которое система проснется, а вторая указывает временну́ю метку в формате количества секунд с начала эпохи unix. Если надо разбудить систему через 1 час, то используем вариант 1, если надо разбудить в 17:30:23 в среду через неделю, а в калькулятор вы не умеете, то используем второй вариант.

В общем, имеем функцию, которая умеет выключать систему и включать её, мне важнее было чтобы оно включалось =) Теперь идем в наш любимый крон, в режиме суперадминистратора или рута и там добавляем вот такие командочки:

Читайте также:  Запросы операционной системы windows

И собственно всё. Пояснения тут излишни.

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

Из приколов, видел где-то реализацию, когда комп использовался в качестве будильника: автоматическое включение и запуск аудио плеера. Тоже вариант использования. Если подумать, можно придумать ещё какие-нибудь нетривиальные способы выстрелить себе в ногу через линукс.

Не всегда надо выключать систему иногда её нужно перезагружать по крону. Видишь какой я молодец и про это тоже уже написал =)

P.S: О! А скоро я тебе расскажу как поднимать VPN сервер при отсутствии статического ip.

Источник

Скрипты и планировщик задач в ОС Linux

В данном посте обсуждаются базовые принципы написания скриптов и работа планировщика заданий в Oracle Linux. Рассматриваются следующие вопросы:

  • Скрипты в ОСLinux
  • Что такое планировщик заданий
  • Работа сервисаcron
  • Примеры

1. Скрипты в ОС Linux

Скрипты в ОС на базе Linux – это набор команд, записанных в файл. Это делается с целью быстрого и удобного вызова последовательности этих команд. Скрипты могут выполнять самые разные задачи – от автоматизации рутинных действий системного администратора до реализации сложных алгоритмов для ИТ инфраструктуры. При этом результаты работы команд могут служить входными данными для других задач (команд).

Для того, чтобы превратить файл с набором команд в скрипт, понадобятся две вещи. Во-первых, в первой строке пустого файла необходимо прописать путь к командной оболочке, которая будет исполнять данный файл. В большинстве дистрибутивов Linux данной оболочкой является Bash, и соответственно первой строкой будет #!/bin/bash. В других строках символ решетки используется для обозначения комментариев, которые не будут обработаны оболочкой. Однако, первая строка — это особый случай, здесь решетка, за которой следует восклицательный знак (эту последовательность называют шебанг) и путь /bin/bash, указывают системе что данный скрипт создан именно для оболочки bash. Во вторых, чтобы скрипт запустить как исполняемый файл, ему необходимо дать права на исполнение, иначе, попытка его запуска даст ошибку Permission denied.

Пример ошибки, когда запускается неисполняемый файл:

Права на исполнение даются командой chmod. Например,

chmod +x filename.sh

Данная команда дает всем пользователям операционной системы право на запуск файла с именем filename.sh

Право на запуск того же файла только владельцу можно дать следующей командой: chmod u+x filename.sh.

Расширение .sh не обязательно, но таким образом легче определять, какой файл является скриптом.

Ниже рассматривается пример написания простейшего скрипта, копирующего все файлы из папки /home/rustam/Documents в папку /tmp/backup.

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

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

Существуют два типа переменных, которые используются в bash-скриптах:

Используются при необходимости работы с системными данными в командах оболочки. Например, требуется вывести домашнюю директорию текущего пользователя. Список переменных для среды конкретного пользователя выдается командой env.

Можно использовать системную переменную $HOME в двойных кавычках, что не помешает ее распознаванию системой.

Читайте также:  What is windows search engine

В дополнение к переменным среды, bash-скрипты позволяют задавать и использовать в скрипте свои собственные переменные. Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария. Как и в случае с системными переменными, к пользовательским переменным обращаются используя знак доллара:

Дополним соответствующим образом скрипт, написанный ранее – добавляется переменная для хранения пути к папке, в которую осуществляется копирование.

2. Что такое планировщик заданий. Работа сервиса cron.

Часто возникают ситуации, в которых приходится автоматизировать различные задачи по обслуживанию и работе с Linux с помощью скриптов. В этом случае удобно, если скрипт выполняет необходимые команды без участия пользователя. Для этого настраивается автоматический запуск требуемого скрипта в заданное время.

Для указанной настройки в Linux используется системный сервис cron. Это планировщик, который позволяет выполнять необходимые скрипты раз в час, раз в день, неделю или месяц, а также в любое заданное время или через любой интервал времени. Сервис cron также часто используется другими службами операционной системы.

Как и большинство других сервисов Linux, cron запускается при старте системы и работает в фоновом режиме. Его основная задача – выполнять требуемые процессы в заданное время. Существует несколько конфигурационных файлов, из которых берется информация о том, что и когда нужно выполнять. Cron открывает файл /etc/crontab, в котором указываются необходимые данные.

Для настройки времени, даты и интервала выполнения задания, используется специальный синтаксис файла cron и специальная команда. Не рекомендуется непосредственно редактировать файл /etc/crontab. Вместо этого используется команда crontab. Ниже запускается команда crontab с ключом –e для редактирования файла

Рекомендуется ее выполнять с опцией -e, тогда для редактирования правил используется текстовый редактор по умолчанию. После выполнения команды открывается временный файл, в котором записаны текущие правила cron и есть возможность добавлять новые. Добавленные правила запускаются именно от того пользователя, от имени которого они были добавлены.

Файлы crontab, используемые для управления работой планировщика, располагаются в каталоге /etc/cron.d/. Кроме того, в каталогах /etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/ размещаются автоматически запускаемые программы (ежедневно, еженедельно или ежемесячно).

Вывод содержимого текущего файла позволяет команда:

Таблица crontab состоит из 6 колонок, которые разделяются пробелами или табуляторами. Первые пять колонок отвечают за время выполнения, соответственно, минута, час, день месяца, месяц, день недели. В них может находиться: число, список чисел (1,2,3), диапазон чисел (1-3), символы * или /. Все остальные символы в строке интерпретируются как выполняемая команда с ее параметрами – можно указать как саму команду (например, echo “Доброе утро”), так и путь к исполняемому скрипту.

Как запускать скрипты через cron

Скрипты запускаются через cron, указанием команды либо пути к скрипту в последней колонке.

Обязательно требуется прописывать полный путь к команде, так как для команд, запускаемых от имени сервиса cron, переменная пользовательской среды PATH будет отличаться, и сервис не сможет найти команду.

Пример запуска ранее созданного скрипта filename.sh, который копирует файлы каждый день в 23:00:

или копирует файлы каждые 5 минут:

3. Примеры

Ниже приведены примеры настройки и работы cron:

0 17 * * 1-5 echo “Рабочий день закончен – эта надпись выводится в 17:00 с понедельника по пятницу”

15 6 * * sun echo “Выполняется в 6:15 в воскресенье”

30 12,13 * * 1,3 echo “Эта надпись выводится в понедельник и среду в 12:30 и 13:30”

Источник

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