К постам Опубликовано: 2016-09-10

Как использовать Cron/Crontab

Linux Crontab позволяет запускать команды, приложения или сценарии в определенные интервалы. Можно запланировать прогон на требуемом интервале. Crontab работает в фоновом режиме, как демон и проверяет кронтаб файл в / и т.д. / кронтаб и /etc/cron.*/ каталоги. К ним относятся cron.d /, cron.daily /, cron.hourly /, cron.monthly /, cron.weekly / каталоги. В этой статье мы обсудим cron выражения и как настроить команды для запуска ежедневно, еженедельно или каждую минуту согласно вашему требованию через Linux Crontab.

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

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

sudo crontab -e 

Примечание: Если вы открываете кронтаб в первый раз, то вам будет предложено выбрать редактор перед использованием. Выберите редактор по вашему выбору. При открытии вы увидите несколько строк, которые прокомментированы и объясняют использование cron.

Linux Crontab Выражения

Давайте разберемся, что, как мы можем использовать cron выражения для настройки команды для запуска на определенный промежуток времени. Это может выглядеть немного сложно, но поверьте мне, это легко. Выражения cron в основном делятся на две части:

  1. Часть даты: что определяет, через какой промежуток времени или команда должна быть выполнена.
  2. Команда: команда выполнения.

Выражение принимает вид:

min hour day month dayOfWeek

Command

min : Минуты (0-59)
hour : Часы (0-23)
day : День месяца (1-31)
month : Месяц (1-12)
dayOfWeek : День недели (0 - 7) [Воскресенье = 0 или 7]

Команда: command to run as cron job.

Cron Операторы

Операторы Cron добавляют гибкость в определении таймингов команд.

*: Звездочка (*) для всех возможных значений, например, * в минуту будет означать каждую минуту.

Пример (Запуск каждый день в 5 утра)

0 5 * * 1 sh /home/savan.patel/backup.sh   

,: Comma определяет список значений.

Пример (Запуск каждый день в 5 , 7 и 10 утра)

0 5,7,10 * * * sh /home/savan.patel/backup.sh  

-: Дефис задает диапазон значений.

Пример (Запуск в 5,6,7 утра каждый день)

0 5-7 * * 1 sh /home/savan.patel/backup.sh   

/ : Разделитель Это шаг использования оператором, напрм. чтобы указать на такие термины, как каждый час. Например, чтобы запустить команду каждые 3 часа вы будете использовать * / 3 в вашем выражении

* */3 * * * sh /home/savan.patel/backup.sh

Использование Cron Выражений

Давайте еще несколько примеров, чтобы понять использование крон выражений.

Запуск backup скрипта каждые 5 минут

*/5 * * * * sh /home/savan.patel/backup.sh

Запуск backup скрипта каждые 5 часов

* */5 * * * sh /home/savan.patel/backup.sh

Запуск сценария резервного копирования каждое воскресенье в полночь

0 0 * * 7 sh /home/savan.patel/backup.sh

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

Кроме операторов, существуют специальные строки, определенные крон, которые очень просты в использовании.

@reboot: выполняются один раз при запуске

@yearly: запускать ежегодно на 1 янв полуночи

@annually: то же, что и раз в год

@monthly: работать 1-го числа месяца, каждый месяц в полуночи

@weekly: запустить один раз в неделю

@daily: запускать ежедневно в полночь

@midnight: то же, что и @daily 

Синтаксис для использования специальных строк

@STRING Command

Запуск backup скрипта еженедельно

@weekly sh /home/savan.patel/backup.sh

Запуск backup скрипта ежедневно

@daily sh /home/savan.patel/backup.sh

Просмотр существующих конфигураций Cron

Список существующих хрон  crontab -l

Инструменты для работы с крон.

CronMaker : http://www.cronmaker.com/ Crontab generator: http://crontab-generator.org/