cron: демон-планировщик

Cron — это демон (служба) в UNIX-подобных системах, который позволяет выполнять пользовательские задачи в определенное время (единоразово или периодически). Регулярно выполняемые команды задаются инструкциями в файлах crontab. Команды, которые должны быть запущены лишь однажды, добавляются при помощи утилиты at.

crontab

Пользовательские crontab-файлы находятся в следующих каталогах (зависит от вашей ОС):

/var/spool/cron
/var/spool/cron/crontabs
/var/spool/cron/tabs

Для работы с crontab-файлами используется команда crontab:
crontab -e — открыть для редактирования (в текстовом редакторе по умолчанию) crontab-файл пользователя под которым выполняется команда
crontab <имя_файла> — заменить старый crontab-файл на новый
crontab -l — отобразить содержимое crontab-файла текущего пользователя
crontab -r — удалить crontab-файл для текущего пользователя

Под root можно редактировать crontab файлы пользователей
crontab -u <имя_пользователя> -e

Структура записи crontab

* * * * *  команда_на_исполнение
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── день недели (доступные значения: 0 - 7) (0 и 7 - воскресенье; 1-6: с понедельника по субботу)
│ │ │ └────────── месяц (доступные значения: 1 - 12 (с января по декабрь))
│ │ └─────────────── день (доступные значения: 1 - 31)
│ └──────────────────── час (доступные значения: 0 - 23)
└───────────────────────── минута (доступные значения: 0 - 59)

Специальные символы

Астериск (*) — означает все допустимые значения. Например, если поставить звёздочку в значении месяца, команда будет выполняться каждый месяц во время, указанное другими параметрами.
Дефис (-) — обозначает диапазон чисел. Например, запись 1-5 будет обозначать числа 1, 2, 3, 4 и 5.
Запятая (,) — обозначает перечисление значений. Например, значения 1, 3, 5 в поле «день недели» будут интерпретированы как «понедельник, среда, пятница»
Слэш/косая черта (/) — используется для определения шага значений. Целочисленное значение может быть пропущено в диапазоне, если после диапазона указать /<целое>. Например, значение минут 0-59/2, определяет, что будет пропущена каждая вторая минута. В качестве шага значений также может быть указана звёздочка. Например, значение месяца */3 определяет, что будет пропущен каждый третий месяц.
Октоторп/хэш/решетка (#) — все строки, начинающиеся с этого символа считаются комментариями, и не обрабатываются.

Предустановленные шаблоны

Данные ключевые слова можно использовать до пользовательской команды.

Ключевое слово Описание Эквивалент
@reboot Запустить при загрузке @reboot
@yearly (or @annually) Запустить один раз в год в полночь 1 января 0 0 1 1 *
@monthly Запустить один раз в месяц в полночь первого числа месяца 0 0 1 * *
@weekly Запустить один раз в неделю в полночь воскресенья 0 0 * * 0
@daily Запустить один раз в день в полночь 0 0 * * *
@hourly Запустить один раз в час (в начале часа) 0 * * * *
Эта запись была опубликована в FreeBSD,Linux.
Занести в закладки: ссылка.

Оставить комментарий

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>