Когда требуется автоматизация на сервере, без cron
обойтись сложно. Конечно для начала требуется написать скрипт, который
будет выполнять какие-то рутинные действия, а для того, чтобы он
запускался регулярно, в определённое время и при этом сам собой, без
вмешательства со стороны администратора сервера, — тут на помощь придёт
знания о том, как настроить cron
на сервере. По сути cron
—
это планировщик в виде системного сервиса, работающего на сервере в
фоновом режиме и по настроенным командам в определённое время (раз в
час, раз в день, неделю или месяц) запускает то, что указано в этих
командах.
Существует несколько конфигурационных файлов cron
, из которых он берет информацию о том когда и что нужно выполнять. Этот сервис открывает файл /etc/crontab
, в котором указаны все нужные данные. В некоторых дистрибутивах linux там прописан запуск утилиты run-parts
, которая запускает нужные скрипты из следующих папок:
/etc/cron.minutely
- каждую минуту;/etc/cron.hourly
- каждый час;/etc/cron.daily
- каждый день;/etc/cron.weekly
- каждую неделю;/etc/cron.monthly
- каждый месяц.В этих папках находятся скрипты (имя этих скриптов не должно содержать точки), которые нужно запускать с указанным интервалом. В файле crontab
также прописан запуск команды anacron
, которая работает так же как и cron
,
только предназначена для задач, которые нужно выполнять раз в заданный
период времени, например, раз в день, неделю, месяц, год.
После перезагрузки (или включения после отключения) сервера, процесс cron
запускается автоматически и, для того, чтобы отслеживать какие
программы были им запущены, а какие ещё не отработали, дата выполнения
задания последний раз записывается в файл /var/spool/anacron
и anacron
проверяет был ли запущен нужный процесс в нужное время, и если нет, то запускает его. Сервис cron
больше рассчитан на выполнение задач в течение дня или с точно расписанным временем и датой.
crontab -l
Команда crontab -l
показывает задачи cron для суперпользователя.
crontab -r
Команда crontab -r
удаляет все существующие задачи суперпользователя.
crontab -e
Команда crontab -e
позволяет редактировать задачи, внесённые в список задач, а также удалять ненужные и дописывать новые.
crontab
Выполнив команду crontab -e
, вы откроете на редактирование список имеющихся задач в cron
в текстовом редакторе, используемым в вашей системе по умолчанию. При сохранении данного файла происходит перезапись задач в cron
и задача удаляется, модифицируется или добавляется в список выполнения.
Формат записи в cron
имеет в начале пять цифр. Если вместо цифры стоит *
, то это нужно понимать как "каждая". Т.е. если нужно выполнять каждый день, то в позиции дней должна стоять *
. Дальше это станет понятно на примерах.
После цифр идёт команда, которую нужно выполнить (обычно это скрипты с параметрами).
Итак, формат в общем виде выглядит так: