Visitors have accessed this post 1233 times.
Настройка Cron (Linux)
Чтобы настроить время и интервал запуска скрипта, используется команда crontab:
crontab -e
- crontab’ in Linux with Examples …
- Linux Basics — Scheduling Tasks with …
- How to configure Crontab on Linux
- Crontab Basic Tutorial — BASH — Linux …
- CRON И CRONTAB …
Флаг -e показывает, что необходимо отредактировать расписание запуска для текущего пользователя. После запуска команды вам нужно будет прописать правила в открывшемся временном файле. Обратите внимание на то, что правила будут запускаться только под тем пользователем, под которым вы их добавляли (если вам нужен запуск cron от пользователя root, то и правила нужно устанавливать от него).
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 * * * * |
Установка и настройка Incron
Установка стандартна: apt-get install incron
Первое действие при настройке — ограничить список людей, которые могут использовать Incron. Сначала командой «incrontab -l» просмотрите список разрешенных пользователей, потом командой «incrontab -e» отредактируйте его. Сам список содержится в конфигурационном файле /etc/ Если его удалить, то Incron смогут использовать все пользователи, зарегистрированные в системе.
- Crontab Explained in Linux [With Examples]
- How to Set Up a Cron Job in Linux …
- A Beginners Guide To Cron Jobs — OSTechNix
- Crontab in Linux Explained With …
- Linux Malware Persistence with Cron …
Синтаксис конфигурационного файла простой: [путь] [маска] [команда] Путь — это путь к контролируемым файлам, маска — события с этими файлами, а команда — команда, которая будет выполнена при возникновении события.
Настройка Cron для запуска PHP-скрипта
В некоторых случаях бывает так, что автоматическое выполнение PHP-скрипта невозможно. Чаще всего подобные ошибки случаются при запуске PHP-скрипта через локальный интерпретатор. В таких случаях требуется запустить Cron вручную, для чего лучше всего использовать программу wget. В приведенном ниже примере «» нужно заменить на реальный путь к вашему PHP-файлу.
0 7,19 * * * /usr/bin/wget -O — -q -t 1 ‘’
Полезные примеры
Разберем уже приведенный выше пример, немного изменив параметры:
0 7,19 3* 7 /usr/bin/wget -O — -q -t 1/ / ‘’ /dev/null/2>&1
Запуск PHP-скрипта будет происходить в 7:00 и 19:00 каждого воскресенья и 3 числа каждого месяца (совпадения дня недели и числа не имеют значения).
/dev/null/2>&1 — эта команда Cron добавляется в конце сценария (строки), для выполнения скрипта в фоновом режиме без уведомлений.
Помимо этого, можно добавлять другие полезные опции в конце строки планировщика Cron. Как например, для отладки запускаемого скрипта, нужен лог-файл выполнений.
То есть, если мы хотим настроить вывод результатов запуска задания Cron в определенный файл, можно изменить команду следующим образом:
0 7,19 3* 7 /usr/bin/wget -O — -q -t 1 ‘’ > /yourdirectory/
Просмотрев такой лог, можно понять причину, почему Cron не выполняет скрипт.