Добавление скрипта в планировщик cron

Материал из ЭЛЕСТА
Перейти к: навигация, поиск

1. Для автоматического запуска скрипта в нужное время, необходимо запустить Планировщик cron
Так как данный скрипт нужно выполнять под пользователем postgres, то переключаемся на него:

su postgres

Чтобы создать или изменить пользовательское расписание наберите команду:

crontab -e

При первом запуске утилита предложит выбрать редактор, рекомендуем выбирать mcedit (требует установленного mc), либо другой редактор
2. Формат строк расписания имеет вид:

минута час день месяц день_недели команда

Минута - время в минутах от 0 до 59
Час - от 0 до 23
День - день месяца от 1 до 31
Месяц - от 1 до 12 либо буквенные обозначения jan - dec
День недели - от 0 до 6 (0 - воскресенье) или sat - sun
Команда - строка в формате командного интерпретатора которая будет исполнена, допускается запись типа команда1 && команда2 для запуска нескольких команд подряд.

Значения минут, часов, дней можно указывать следующим образом:
Значение - число обозначающее дату или время, допускается подстановочный знак * допускающий полный диапазон значений
Несколько значений - допускается указывать несколько значений через запятую, например 2,14,22
Диапазон значений - указывается через дефис, например 2-10
Шаг значений - указывается через дробь, в знаменатель которой ставится шаг, например */3 - каждое третье значение 0, 3, 6, 9 и т.д. В качестве числителя должен быть диапазон значений либо звездочка.

Пример:

 0 8-19/2 * * 1 /etc/pgsql-backup.sh

Она означает что каждый второй час с 8 до 19 (8, 10,12,14,16) по понедельникам запускать скрипт

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

Кроме даты можно использовать ряд специальных строк:

  • @reboot - выполнять команду при перезагрузке
  • @yearly или @annually - выполнять 1 января, аналогично записи: "0 0 1 1 * "
  • @monthly - выполнять 1 числа каждого месяца, аналогично "0 0 1 * * "
  • @weekly - выполнять каждое воскресенье, равносильно "0 0 * * 0"
  • @daily или @midnight - ежедневно в полночь,"0 0 * * * "
  • @hourly - раз в час, "0 * * * * "

3. Так для ежедневного исполнения нашего скрипта каждую полночь можно написать:

@midnight /etc/pgsql-backup.sh

4. Завершив составление расписания сохраняем файл и выходим из редактора. Пользовательское расписание будет сохранено в /var/spool/cron/crontabs под именем текущего пользователя.

5. Для системных и административных задач предусмотрен файл /etc/crontab синтаксис записей в нем отличается наличием дополнительного значения - пользователя, от чьего имени будет запущено задание:

минута час день месяц день_недели пользователь команда

Пример такой записи:

0 19 * * 1-5 root /etc/pgsql-backup.sh

Согласно которой в 19:00 с понедельника по пятницу будет запускаться скрипт /etc/pgsql-backup.sh от имени пользователя root