Cron самый популярный планировщик задач в Linux системах.
Каждый администратор Linux так или иначе прибегает к работе с cron, будеь это перезапуск какого-нибудь сервиса в определенное время или например запуск скрипта ежедневный.

Нам нужно добавить задачу в Cron,но для начала мы можем увидеть какие текущие задачи в нем есть командой:

# crontab -l

Если мы получаем подобный ответ:

-bash: crontab: command not found

Что же делать.
Это значит у нас не установлен cron, что мы легко исправим следующими командами:

Install Crontab для Centos:

# sudo yum update
# sudo yum install vixie-cron crontabs

Install Crontab для Ubuntu/Debian:

#sudo apt-get update
#sudo apt-get install cron

Закончили установку.
Для примера будем придумывать себе задания, которые попробуем решить с помощью планировщика заданий Cron.
Также на понадобится конкретное действие , которые мы будем исполнять, например:
1. команду service nginx restart, которая перезапускает службу веб-сервера nginx.
2. запуск скрипта /scripts/script-ithelp21.sh

Начнем с того, что есть два варианта добавления заданий в cron:
1. Через редактирование файла /etc/crontab
2. Через команду crontab -etc/crontab -etc/crontab

Открываем редактор cron командой:
crontab -e

Задания добавляются в виде строк:

* * * * * service nginx restart
* * * * * /scripts/script-ithelp21.sh

перезагружает веб-сервер и запускает скрипт каждую минуту.

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 6) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

Слева направо ознакомимся с значением *, которые она может принимать.
Каждая звездочка это возможное место для цифры:

1. Минуты (0 — 59)
2. Часы (0 — 23)
3. День месяца (0 — 31)
4. Месяц (1 -12)
5. День недели (0 — 6, 0 — воскресенье)

И на основе данной информации пройдемся по возможным примерам.

#Как запустить команду с одинаковым промежутком времени.

*/5 * * * * service nginx restart
42 * * * * /scripts/script-ithelp21.sh

#В данном примере сервис nginx будет перезапуск каждые 5 минут, а скрипт запускается в 42 минуты каждого часа.

#Как запустить команду в определенное время.

0 2 * * * service nginx restart
30 16 * * 3 /scripts/script-ithelp21.sh

Nginx будет перезапуск ежедневно ровно в 2 часа ночи, а скрипт запускаться будет каждую среду в 16-30.

#Перезапускаем веб-сервер в 2 часа 5 минут каждое 15 число месяца.

5 2 15 * * service nginx restart

#Запускаем скрипт с понедельника по пятницу в 15-00:

0 15 * * 1-5 /scripts/script-ithelp21.sh

#Запускаем скрипт каждые три часа в 0 минут

0 */3 * * * /scripts/script-ithelp21.sh

Есть еще вариант использовать немного другой формат планировщика задач в виде:

@reboot - Запуск при загрузке
@yearly - в первую минуту каждого года (0 0 1 1 *).
@monthly - в первую минуту месяца (0 0 1 * *)
@weekly - в первую минуту недели (0 0 1 * 1)
@daily - в первую минуту каждого дня (0 0 * * *)
@midnight - в полночь (00:00)
@hourly - в первую минуту каждого часа (0 * * * *)

Например, команды будут выполнять одинаковый функционал:

@monthl scripts/script-ithelp21.sh
0 0 1 * * scripts/script-ithelp21.sh

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.