MyTetra Share
Делитесь знаниями!
Выполнение команд по расписанию через CRON в LInux
11.05.2018
13:04
Автор: br0ke
Текстовые метки: linux, cron, schedule
Раздел: Информационные технологии - Linux

Запустить crontab для редактирования расписания:

sudo crontab -e


Генератор команд для crontab:

https://crontab-generator.org/


Традиционный cron-формат состоит из пяти полей, разделенных пробелами и последующей команды:

* * * * * <command>

| | | | |

| | | | +---- Дни недели (диапазон: 0-7, где 0 и 7 -- это воскресенье, 1 -- понедельник и т.д.)

| | | +------ Месяцы (диапазон: 1-12)

| | +-------- Дни месяца (диапазон: 1-31)

| +---------- Часы (диапазон: 0-23)

+------------ Минуты (диапазон: 0-59)


Правила:

  1. Любое из пяти полей может содержать символ * (звездочка) в качестве значения. Это означает полный диапазон позможных значений, например, каждая минута, каждый час и т.д.
  2. Любое из полей может содержать список значений, разделенных запятыми (например, 1,3,7) и интервал (поддиапазон) значений, обозначаемый дефисом (например, 1-5).
  3. После звездочки (*) или интервала можно с помощью символа / указать шаг значений. Например, 0-23/2 может использоваться в поле "Часы" для указания того, что действие должно происходить каждые два часа.
  4. В полях "Месяцы" и "Дни недели" можно вместо числовых значений использовать сокращенные трёхбуквенные названия месяцев (Jan,Feb,...,Dec) и дней недели (Mon,Tue,...,Sun).
  5. Вместо указания времени через пять полей, можно использовать следующие специальные строки:

string meaning

------ -------

@reboot Run once, at startup.

@yearly Run once a year, "0 0 1 1 *".

@annually (same as @yearly)

@monthly Run once a month, "0 0 1 * *".

@weekly Run once a week, "0 0 * * 0".

@daily Run once a day, "0 0 * * *".

@midnight (same as @daily)

@hourly Run once an hour, "0 * * * *".


Примеры:


Выполнить единожды команду ping каждую минуту каждого часа каждого дня каждого месяца.

* * * * * /sbin/ping -c 1 192.168.0.1 > /dev/null


Делать бэкап конфигурации GitLab ежедневно (символ % нужно обязательно экранировать, иначе команды будет воспринята не до конца: \%):

@daily docker exec gitlab_new /bin/sh -c 'umask 0077; tar cfz /var/opt/gitlab/backups/$(date +"\%s_\%Y_\%m_\%d_gitlab_config.tgz") -C / etc/gitlab'


Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования