Управление заданиями планировщика на локальных и удаленных системах. Выключение и запуск по расписанию Linux

В предыдущих статьях мы учились проводить глобальный поиск по Сети на предмет уязвимых серверов, а также писать простые скрипты на BASH и Perl для выполнения различных исследовательских задач. А совсем свежее руководство было посвящено сканированию серверов на поиск уязвимости для Heartbleed.

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

К счастью Linux имеет встроенную функцию, которая позволяет выполнять такие задания по расписанию. Она называется cron или crond для демона, который запускает эти службы (демон - это просто процесс, работающий в фоновом режиме).

Как работает Cron в Linux

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

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

Давайте посмотрим, как это работает и как это можно использовать для хакерских задач.

Шаг 1. Находим Crontab

Cron - это одна из тех функций, которая почти идентична для всех дистрибутивов Linux, поэтому то, что вы узнаете здесь, можно будет использовать в Ubuntu, Red Hat, Suse, Mint, Slackware, CentOS и других. Cron является частью семейства Linux/UNIX еще с 70-х годов, поэтому он проверен, широко используется и считается надежным инструментом, поскольку на деле доказал свою ценность.

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

Конфигурационный файл cron называется crontab или «cron table» («таблица cron»). Чтобы найти файл crontab, введите в консоли:

Locate crontab

На скриншоте выше видно, что он находится в директории /etc, впрочем, как любой другой конфигурационный файл в Linux (есть исключения, конечно).

Шаг 2. Открываем crontab

Давайте откроем его и посмотрим что же у него внутри. Это делается с помощью любого текстового редактора, но в этой статье мы будем использовать графический текстовый редактор, устанавливаемый в Kali по умолчанию - Leafpad. Введите в консоли:

Leafpad /etc/crontab

Версия Debian, на которой основан Kali, имеет новую версию crontab, с которой легче работать, чем с ранними версиями. В отличие от предыдущих версий, разработчики поставили для полей поясняющие метки и добавили новое поле для обозначения пользователя, который и будет запускать задание.

Шаг 3: Анатомия Crontab

Давайте разложим crontab на части. Как видно на скриншоте выше, crontab начинается с пяти прокомментированных строк, которые начинаются с символа решетки (#). Эти строки - просто объяснения и примечания, они не читаются и не выполняются самой системой.

После этих строк вы видите такую пару строк:

Первая из них определяет ту оболочку (shell), которая будет использована для запуска заданий. В нашем случае мы назначаем оболочку BASH командой, указанной после знака равенства. Если вы хотите использовать другую оболочку, вы можете определить ее явно в этой строке:

SHELL=/bin/sh

Вторая строка задает переменную PATH. Переменная PATH является переменной среды (в Windows тоже такое есть), которая сообщает системе, где ей искать команды, используемые в задании cron. Как правило, это файлы в директориях bin и sbin (бинарные, т.е. исполняемые файлы), которые содержат системные команды, используемые в Linux (ls, echo, ps, cd и другие).

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

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Это значит, что демон cron будет искать в этих директориях те команды, которые ему нужны для выполнения запланированных вами заданий. Если вы используете команду или файл, которой нет в этих директориях, то просто отредактируйте эту строку и добавьте нужную директорию после ввода двоеточия (:). Например:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/newdir

Шаг 4. Определение задач по расписанию

Теперь идет самое «мясо» файла crontab. В третьем разделе мы как раз и планируем выполнение тех заданий, которые нужно запускать.

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

Поля файла crontab следующие:

  • Minute - определенная минута, когда команда или задание будет запущено (0-59)
  • Hour - определенный час выполнения команды или задания (0-23)
  • Day of the Month - день месяца, когда будет запущена команда или задание (1-31)
  • Month - месяц выполнения команды или задания (1-12)
  • Day of the week - день недели выполнения команды или задания (0-6, воскресенье = 0)
  • User - пользователь, который разрешает выполнение этой команды или задания
  • Command - команда или задание, которое вы хотите запускать по расписанию

Звездочка (*) представляет собой слово «любой», поэтому это может быть любой день, час или минута.

Использование Cron для поиска уязвимых серверов

Теперь давайте представим, что мы хотим просканировать весь Земной шар на предмет IP-адресов, уязвимых для Heartbleed.

Сообщается, есть больше 300 000 серверов, которые по-прежнему не пропатчены от этой уязвимости. Это очень большое число, при более чем 2 миллиардов IP-адресов по всей планете. Это количество означает, что уязвимым к этой атаке будет только 1 из 10 000 IP-адресов. Это также значит, что нам нужно настроить сканер таким образом, чтобы он повторял поиск по тысячам IP-адресов, для того, чтобы найти хотя бы один уязвимый сервер.

Это идеальная задача для работы с cron!

Шаг 5. Определение расписания для нашего Heartbleed сканера

Мы можем запланировать сканирование, чтобы оно выполнялось каждую ночь, пока мы спим, в надежде на то, что каждое утро, проснувшись, узнаем о новой потенциальной жертве!

Давайте снова откроем crontab в любом текстовом редакторе.

Теперь нам нужно добавить только одну строку, чтобы запускать наш nmap-сканер каждую неделю в 2:05 ночи. Просто добавьте эту строку в ваш файл crontab:

05 2 * * 1,2,3,4,5 root nmap -sV --script=ssl-heartbleed 68.76.0.0/16

На этой странице хочу рассказать, как создать назначенное задание в Windows 2008 и Windows 2008 R2 .

Назначенные задания служат для выполнения какой-либо задачи по расписанию. Автоматический запуск программы по расписанию настраивается в планировщике заданий, основной задачей которого является запуск программы в зависимости от определенных условий:

  • наступление определенного времени;
  • смена состояния системы (выключение, ждущий режим и т.д.);
  • ручной запуск через интерфейс планировщика заданий.

Итак, создание назначенного задания в Windows 2008:

1. Нажимаем кнопку «Пуск» и выбираем пункт «Панель управления»:

2. В появившемся окне выбираем «Администрирование»:

4. В планировщике заданий создаем простую задачу:

5. Вписываем имя нашей задачи и ее описание. Жмем «Далее»:

6. Выбираем периодичность запуска. Жмем «Далее»:

8. Выбираем действие «Запустить программу». Жмем «Далее»:

9. Жмем кнопку «Обзор» и выбираем наш исполняемый файл, запуск которого мы хотим осуществить. Жмем «Далее»:

10. Указываем галочку дополнительных настроек. Жмем «Готово»:

11. По умолчанию назначенное задание запускается от имени того, кто его создал. Если необходимо изменить пользователя, нажмите кнопку «Изменить» и выберите нового пользователя. Поставьте отметку «Выполнить с наивысшими правами» и нажмите «ОК»:

Все! Наше назначенное задание готово!

04.10.2009 17:50

С помощью улучшенного Планировщика заданий Windows 7 можно запланировать запуск любой программы в определенное время с определенными условиями. Также можно запланировать отправку электронной почты и даже вывод на экран определенного сообщения.

Чтобы запустить Планировщик заданий, откройте меню Пуск, в поисковую строку введите и нажмите Ввод (в нерусифицированной Windows 7 вместо слова введите taskschd.msc ).

Также можно открыть Панель управления (расширенный вид) -> Администрирование -> Планировщик заданий .

В расположенном справа меню Действия нажмите Создать задачу (или Создать простую задачу ).

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

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

Перейдите на вкладку Действия и нажмите кнопку Создать .

Чтобы запланировать выполнение программы по указанному расписанию, в раскрывающемся списке Действие выберите и с помощью кнопки Обзор укажите местоположение исполняемого файла.

Чтобы запланировать отправку электронной почты по расписанию, в раскрывающемся списке Действие выберите Отправка электронной почты и заполните стандартные поля: От (ваши имя и адрес электронной почты), Кому (имя и адрес получателя письма), Тема (заголовок письма) и Текст (текст сообщения). Если нужно прикрепить файлы к отправляемому сообщению, с помощью кнопки Обзор укажите местоположение файла, который хотите прикрепить. В поле Сервер smtp укажите smtp-сервер поставщика своей электронной почты (например, smtp.mail.ru ) и нажмите OK .

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

Очень удобная вещь, когда нужно напомнить себе о том, что через 5 минут наступит Новый год, что пора покормить кошку, выключить суп или зайти на сайт Windows 7 – Впечатления и факты. Выглядеть такое сообщение будет примерно так:

Перейдите на вкладку Условия и укажите условия выполнения задачи.

Также можно задать дополнительные параметры выполнения задачи на вкладке .

После завершения всех этих действий, нажмите OK , чтобы создать задачу.

Чтобы изменить созданное задание, откройте Планировщик заданий, выделите задачу в списке, в правом меню Действия выберите Свойства , отредактируйте нужные параметры и нажмите OK .

Чтобы удалить запланированное задание, откройте Планировщик заданий, выделите задачу в списке, в правом меню Действия выберите Удалить и подтвердите свои намерения.

Примечание . Чтобы Планировщик заданий функционировал, служба планировщика заданий должна автоматически запускаться вместе с Windows 7. Откройте Панель управления (расширенный вид) -> Администрирование -> Службы . В списке служб найдите, дважды щелкните по ней, на вкладке Общие установите тип запуска Авто и нажмите OK .

Операционная система 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 минуты:

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 с утра:

0 21 * * * /usr/bin/rtcwake –m mem –s 28800

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

0 21 * * * /usr/bin/shutdown -h now

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

Выводы

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

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

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

Способ 1: BIOS и UEFI

О существовании BIOS (Basic Input-Output System) слышали, наверное, все, кто хоть немного знаком с принципами работы компьютера. Она отвечает за тестирование и штатное включение всех компонентов аппаратного обеспечения ПК, и затем передает управление ними операционной системе. БИОС содержит в себе множество различных настроек, среди которых есть и возможность включения компьютера в автоматическом режиме. Оговоримся сразу, что данная функция присутствует далеко не во всех BIOS, а только в более или менее современных ее версиях.

Чтобы запланировать запуск своего ПК на автомате через БИОС, необходимо сделать следующее:


В настоящее время интерфейс BIOS считается уже устаревшим. В современных компьютерах ему на смену пришел UEFI (Unified Extensible Firmware Interface). Его основное предназначение такое же, как и у BIOS, но возможности гораздо шире. Пользователю намного проще работать с UEFI благодаря поддержке мыши и русского языка в интерфейсе.

Настройка автоматического включения компьютера с помощью UEFI осуществляется следующим образом:


Настройка автоматического включения с помощью BIOS или UEFI является единственным способом, который позволяет осуществить данную операцию на полностью выключенном компьютере. Во всех остальных случаях речь идет не о включении, а о выводе ПК из состояния гибернации или спящего режима.

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

Способ 2: Планировщик заданий

Настроить автоматическое включение компьютера можно и с помощью системных средств Windows. Для этого используется планировщик заданий. Рассмотрим как это делается на примере Windows 7.

В начале нужно разрешить системе автоматическое включение/выключение компьютера. Для этого необходимо в панели управления открыть раздел «Система и безопасность» и в разделе «Электропитание» перейти по ссылке «Настройка перехода в спящий режим» .


Затем в открывшемся окне перейти по ссылке «Изменить дополнительные параметры питания» .


После этого найти в списке дополнительных параметров «Сон» и там установить разрешение для таймеров пробуждения в состояние «Включить» .

Теперь можно настраивать расписание автоматического включения компьютера. Для этого необходимо сделать следующее:

  1. Откройте планировщик. Проще всего это сделать через меню «Пуск» , где находится специальное поле для поиска программ и файлов.

    Начните вводить в этом поле слово «планировщик», чтобы в верхней строке появилась ссылка для открытия утилиты.

    Чтобы открыть планировщик, достаточно кликнуть по ней левой кнопкой мыши. Его также можно запустить через меню «Пуск» — «Стандартные» — «Служебные» , или через окно «Выполнить» (Win+R) , введя туда команду taskschd.msc .
  2. В окне планировщика перейдите в раздел «Библиотека планировщика заданий» .

  3. В правой части окна выберите «Создать задачу» .

  4. Придумайте название и описание для новой задачи, например, «Автоматическое включение компьютера». В этом же окне можно настроить параметры, с которыми будет происходить пробуждение компьютера: пользователь, под которым будет осуществлен вход в систему, и уровень его прав.

  5. Перейдите во вкладку «Триггеры» и нажмите на кнопку «Создать» .

  6. Настройте периодичность и время автоматического включения компьютера, например, ежедневно в 7.30 утра.

  7. Перейдите во вкладку «Действия» и создайте новое действие по аналогии с предыдущим пунктом. Здесь можно настроить, что должно произойти при выполнении задачи. Сделаем так, чтобы при этом на экран выводилось какое-нибудь сообщение.

    При желании можно настроить другое действие, например, проигрывание аудиофайла, запуск торрента или другой программы.
  8. Перейдите во вкладку «Условия» и отметьте чекбокс «Пробуждать компьютер для выполнения задачи» . При необходимости поставьте остальные отметки.


    Этот пункт является ключевым при создании нашей задачи.
  9. Завершите процесс, нажав на клавишу «OK» . Если в общих параметрах был указан вход в систему под конкретным пользователем, планировщик попросит указать его имя и пароль.

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


Результатом ее выполнения будет ежедневное пробуждение компьютера в 7.30 утра и вывод на экран сообщения «С добрым утром!».

Способ 3: Программы сторонних производителей

Создать расписание работы компьютера можно и с помощью программ, созданных сторонними разработчиками. В какой-то мере все они дублируют функции системного планировщика заданий. Некоторые имеют значительно урезанный по сравнению с ним функционал, но компенсируют это легкостью в настройке и более удобным интерфейсом. Однако программных продуктов, способных выводить компьютер из спящего режима, существует не так уж и много. Рассмотрим некоторые из них подробнее.

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


Таким образом, включение/выключение компьютера будет запланировано независимо от даты.

Auto Power-on & Shut-down

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


WakeMeUp!

Интерфейс данной программы имеет функционал, типичный для всех будильников и напоминалок. Программа платная, пробная версия предоставляется на 15 дней. К ее недостаткам следует отнести длительное отсутствие обновлений. В Windows 7 ее удалось запустить только в режиме совместимости с Windows 2000 с административными правами.


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