Работа с планировщиком заданий CRON
Для чего это нужно
С помощью планировщика CRON пользователь может создавать задачи на выполнение определенных команд или скриптов по заданному расписанию.
Инструкции
В панели ispmanager 6
Управление планировщиком заданий в панели выполняется в разделе "Планировщик CRON".
![](https://static.ispmanager.ru/knowledge-base/2024/07/09/UaewXu0iy6VnGoC9ISlDVJV5l1AYEpZ3Qo0GPPDe.png)
В главном меню раздел "Планировщик CRON" имеет следующие возможности:
- Создать задание;
- Изменить параметры задания;
- Удалить задание;
- Включить и выключить задание;
- Настройки планировщика;
- Выполнить задание.
Настройки самого планировщика представляют собой два параметра:
- Адрес e-mail — адрес электронной почты, на который будут пересылаться результаты выполнения команд планировщика. В настройках каждого задания можно включить опцию ”Не отправлять отчет по e-mail”, если отправка отчета о его выполнении не требуется;
- Путь — путь до каталогов исполняемых файлов. В качестве разделительного символа используется двоеточие.
При создании или изменении задания, можно указать следующие параметры:
- Команда - выполняемая планировщиком команда;
- Описание - описание самого задания;
- Расписание - график, согласно которому задание будет выполняться автоматически.
![](https://static.ispmanager.ru/knowledge-base/2024/07/16/xezYX8G2qnTo7GX86oaP12Uacz47bas9x8DulFUL.png)
График выполнения можно настроить в базовом и экспертном режиме. Экспертный режим отличается от базового только возможностью настройки графика выполнения задания более гибко.
В базовом режиме, настройка графика содержит всего 3 параметра:
- Периодичность выполнения;
- Час выполнения задания;
- Минута выполнения задания.
В экспертном режиме, настройка графика выполняется с помощью специальных символов и числовых значений, как если бы это выполнялось через консоль:
- Символ "*" - каждое новое значение. Например, каждую минуту, час или день;
- Символ "," - перечисление значений. Перечисление должно выполнятся без пробелов;
- Символ "*/" - каждое значение с определенным шагом;
- Символ "-" - диапазон значений.
Например, чтобы выполнять задачу в 1 и 30 дни каждого месяца с 10 до 22 часов и каждые 5 минут, необходимо выставить параметры как на скриншоте ниже.
![](https://static.ispmanager.ru/knowledge-base/2024/07/16/BAbQ1Nza4O5iDLqiGZ457Fp8i2GU4Z8nnb0QKApd.png)
Пример использования
В качестве примера, создадим задание на запись системного времени в файл каждые 2 минуты.
В разделе "Менеджер файлов" создайте файл "servtimetest", например в директории пользователя "root". Внесите в файл следующие строки:
#! /bin/sh
date>> date-out.txt
Сохраните изменения и скопируйте путь до файла из поля "Имя файла" - он потребуется при указании пути исполняемого файла в задании.
После создания и наполнения скрипта, ему необходимо назначить корректные права для его исполнения - в разделе "Менеджер файлов" выберите файл и нажмите на кнопку "Атрибуты" и укажите права как на скриншоте ниже.
После создания скрипта, перейдите в раздел "Планировщик CRON" для создания задания. Нажмите на кнопку "Создать задание" и новой вкладке, в поле "Команда" укажите путь до скрипта, который был скопирован ранее.
Переключитесь в экспертный режим расписания и укажите в поле "Минуты" значение "*/2", а во всех остальных - "*".
После сохранения задания, каждые две минуты время сервера будет записываться в файле "date-out.txt", который появится рядом со скриптом.
В консоли
Через консоль, с планировщиком заданий CRON можно работать через команду "crontab":
- Чтобы посмотреть список существующих заданий пользователя, используется команда "crontab -l";
- Чтобы перейти в режим редактирования, используется команда "crontab -e".
Список задач в консоли отображается следующим образом:
root@example:~# crontab -l
## Ispmanager update package cache task
26 1 * * * /usr/local/mgr5/sbin/cron-ispmgr sbin/pkgupdate.sh >/dev/null 2>&1
## Ispmanager stat handler (ispmgr)
37 22 * * * /usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr ispstat >/dev/null 2>&1
## Ispmanager periodic tasks handler (ispmgr)
* * * * * /usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr periodic >/dev/null 2>&1
Каждая новое задание как правило начинается с расписания в следующем порядке: минуты, часы, дни месяцев, месяцы и дни недели. После расписания, указывается путь до исполняемого файла.
В строке выше самого задания можно указать его описание, которое указывается в комментарии (строка с символами "##").
Пример использования
В качестве примера, создадим задание на запись системного времени в файл каждые 2 минуты.
Создайте файл и добавьте в него следующие строки с помощь текстового редактора, например "nano":
nano /root/servtimetest
#! /bin/sh
date>> date-out.txt
Укажите корректные права для файла:
сhmod 775 /root/servtimetest
Перейдите в режим редактирование заданий CRON и создайте новое задание:
crontab -e
## save the system_date
*/2 * * * * /root/servtimetest >/dev/null 2>&1
После сохранения задания, каждые две минуты время сервера будет записываться в файле "date-out.txt", который появится рядом со скриптом.
Посмотреть выполнение задания можно в системном журнале:
- /var/log/syslog - для Debian-систем;
- /var/log/messages - для RHEL-систем.