NetTOOLSLib home page


GoИспользование crontab - планировщика заданий Linux

Статья посвящена описанию использования планировщика заданий crontab.
crontab - используется для выполнения заданий по заданному графику. Программа аналогичная task sheduler в Windows


1. Установка crontab

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


#crontab -l



и если ответом на команду выводится сообщение


-bash: crontab: command not found



это означает необходимость установки crontab в систему.

Для выполнения установки выполните команду:


#yum install cronie




2. Использование crontab



Для указания периода использования crontab используется 5 полей для указания времени запуска команды [command]



Возможны следующие варианты задания параметров:
*соответствует любому периоду
диапазонпозволяет определить диапазон: например 1-10 или 20-30 или sun-fri или feb-apr
несколько диапазоновможно определять несколько диапазонов, через перечисление: например jan-mar,jul-sep


- добавление команд в планировщик от текущей учетной записи


#crontab -e



- добавление команд в планировщик для запуска от другой учетной запису (вместо username укажите требуемую учетную запись)


#crontab -u username -e



- просмотр заданий планировщика текущей учетной записи


#crontab -l



- просмотр заданий планировщика другой учетной записи (вместо username укажите требуемую учетную запись)


3. Примеры использования crontab

- ежедневный запуск backup.sh в 2 часа


0 2 * * * /bin/sh backup.sh



- ежедневный запуск script.sh 2 раза в день (в 5:00 и 17:00)


0 5,17 * * * /scripts/script.sh



- ежеминутный запуск script.sh


* * * * * /scripts/script.sh



- запуск каждое воскресенье в 17 часов


0 17 * * sun /scripts/script.sh



- запуск каждые 10 минут


*/10 * * * * /scripts/monitor.sh



- запуск в выбранные месяцы (январь, май, август)


* * * jan,may,aug * /script/script.sh



- запуск каждую пятницу и воскресенье в 17 часов


0 17 * * sun,fri /script/script.sh



- запуск каждое первое воскресенье каждого месяца


0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh



- запуск каждые 4 часа


0 */4 * * * /scripts/script.sh



- запуск каждый понедельник и воскресенье в 4 и 17 часов


0 4,17 * * sun,mon /scripts/script.sh



- запуск каждые 30 секунд, используя 2 задания


* * * * * /scripts/script.sh
* * * * * sleep 30; /scripts/script.sh



- запуск двух заданий в одном плане запуска


* * * * * /scripts/script.sh; /scripts/scrit2.sh



- ежегодный запуск, оператор @yearly заменяет "0 0 1 1 *"


@yearly /scripts/script.sh



- ежемесячный запуск, оператор @monthly заменяет "0 0 1 * *"


@monthly /scripts/script.sh



- еженедельный запуск, @weekly - "0 0 1 * mon"


@weekly /bin/script.sh



- ежедневный запуск, @daily - "0 0 * * *"


@daily /scripts/script.sh



- запуск каждую первую минуту часа, @hourly - "0 * * * *"


@hourly /scripts/script.sh



- запуск при перезагрузке


@reboot /scripts/script.sh



- отправка результата на email


# crontab -l
MAIL=user1
0 2 * * * /script/backup.sh



4. Заключение

В данной статье рассмотрен планировщик заданий crontab, его установка, параметры использования, а так же примеры использования.


Go


NetTOOLSLib home page
(online network tools and utilities)