Планировщик заданий

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

В Windows-системах начиная с Windows 95 есть утилита Планировщик зданий, которая позволяет запланировать запуск программ или скриптов в определенные моменты времени с определенным интервалом. В мире UNIX тоже есть подобная утилита и называется она Cron.

Cron работает как демон и выполняет действия в определенное время, которые описаны в конфигурационных файлах.

Но, обо всем по порядку.

Как работать с утилитой

Настройки cron хранятся в /etc/crontab. И, теоретически, можно добавить задание отредактировав данный файл. Но, рекомендуется использовать утилиту crontab.

crontab -e

У вас откроется в редакторе (nano) следующий временный файл:

#minute (0-59),
#|      hour (0-23),
#|      |       day of the month (1-31),
#|      |       |       month of the year (1-12),
#|      |       |       |       day of the week (0-6 with 0=Sunday).
#|      |       |       |       |       commands
~
~
~

После завершения редактирования правила будут добавлены в /var/spool/cron/crontabs/имя_пользователя и выполняться команды будут от имени пользователя.

Если вам надо сделать план на всю систему, то нужно запустить редактор cron от суперпользователя.

su-
crontab -e

После завершения работы команды cron файл будет обработан и все правила будут добавлены в /var/spool/cron/crontabs/имя_пользователя, причем, добавленные процессы будут запускаться именно от того пользователя, от которого вы их добавляли.

Синтаксис

Синтаксис правила выглядит так:

минута час день месяц день_недели /путь/к/исполняемому/файлу

  • минута - от 0 до 59
  • час - от 0 до 23
  • день - от 1 до ?28, 30, 31
  • месяц - от 1 до 12
  • день недели - от 1 до 7
  • путь к исполняемому файлу - путь к программе или скрипту, должен указываться всегда полностью
  • звездочка вместо значения означает выполнение команды каждый(-ую) минуту/час/день/день недели

Для некоторых часто используемых наборов были созданы переменные:

  • @reboot - при загрузке, только один раз
  • @yearly, @annually - раз год
  • @monthly - раз в месяц
  • @weekly - раз в неделю
  • @daily, @midnight - каждый день
  • @hourly - каждый час

Команды

Просмотреть задачи

crontab -l

Удалить все задачи

crontab -r

Примеры команд

  • Каждый день в 12:30 перезагружать компьютер
30 12 * * * reboot 
  • Каждую пятницу в 17:00 выводить сообщение "Ура, пятница!"
* 17 * * 5 gdialog --msgbox "Ура, пятница!"
  • 15 числа каждого месяца ...
* * 15 * * ...
  • 31 декабря каждого года ...
* * 31 12 * ...

Графические интерфейсы

Gnome Shedule

Gnome Schedule

Графическая оболочка для cron, превращающая его в подобие Планировщика заданий Windows.

Пока отсутствует в ALT Linux.

Модуль Alterator

Планировался модуль для Alterator, но он еще не реализован.

Источники