Планировщик задач в Linux. Для чего нужен сервис Cron?

планировщик задач в linux. для чего нужен сервис cron?

Область применения Cron

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

Cron в большинстве дистрибутивов устанавливается по умолчанию. Однако для некоторых серверных версий Linux может потребоваться установка из репозитория. Например, в Ubuntu это делается с помощью команды «sudo apt-get install cron».

Специальные директории

У планировщика Cron имеется главный конфигурационный файл /etc/crontab. В нем уже заполнено несколько задач, целью которых является автоматический запуск исполняемых файлов, расположенных в ряде специальных директорий.

Специальные директории Cron:

  • /etc/cron.minutely — скрипты, запускаемые каждую минуту. Данная директория может отсутствовать в ряде дистрибутивов.
  • /etc/cron.hourly — запуск каждый час.
  • /etc/cron.daily — запуск каждый день.
  • /etc/cron.weekly — запуск каждую неделю.
  • /etc/cron.monthly — запуск каждый месяц.

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

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

Пользовательская настройка Cron

Вы можете создать собственную конфигурацию планировщика задач Cron с помощью команды «crontab -e». Она автоматически откроет временный файл, который можно будет отредактировать и сохранить. Опция -e позволяет начать изменение этого файла в вашем текстовом редакторе, установленным в системе по умолчанию.

Файл настроек Cron делится на строки. Каждая новая строка — это конфигурация отдельной задачи. Каждая конфигурация состоит из ряда составляющих, которые в общем виде можно записать как «минута час день месяц день_недели имя_пользователя команда».

Пояснения к настройкам задачи:

  • Минута — в какую минуту внутри часа должна выполняться задача. Число от 0 до 59.
  • Час — указание часа внутри дня. Число от 0 до 23.
  • День — указание дня внутри месяца. Число от 1 до 31.
  • Месяц — порядковый номер месяца. От 1 до 12.
  • День_недели — Указание дня недели. От 0 до 7. При этом число 0 и 7 соответствует воскресенью.
  • Имя_пользователя — системное имя пользователя, от которого будет выполнена команда.
  • Команда — полная запись консольной команды со всеми опциями и параметрами.

Если вы не хотите указывать конкретное значение для минуты, часа или любого другого временного отрезка, поставьте знак «*». Он будет соответствовать любому значению. После сохранения настроек они будут добавлены в директорию /var/spool/cron/crontabs/имя_пользователя.

#примеры настройки резервного копирования папки пользователя
12 */2 * * * user_name tar czf /home/user_name /backups #каждую 12 минуту четного часа
14 30 * * 7 user_name tar czf /home/user_name /backups #каждое воскресенье в 14:30
0 0 1 1 * user_name tar czf /home/user_name /backups #каждый новый год

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

Последние публикации