Cron
Установка Cron в Centos:
# yum install cronie
В инструкции описано использование планировщика Cron с помощью утилиты Crontab в Linux.
Конфигурационные файлы
Следующие файлы ограничивают доступ к планировщику (по умолчанию они не существуют):
- /etc/cron.allow — если существует, пользователи указанные в этом файле имеют возможность запуска заданий планировщика;
- /etc/cron.deny — если существует, пользователи указанные в этом файле НЕ имеют возможность запуска заданий планировщика.
Если cron.allow существует, только юзерам, перечисленным в нем, разрешено использовать cron, при этом файл cron.deny игнорируется. Если cron.allow не существует, юзерам, указанным в cron.deny, не разрешается использовать планировщик cron.
Формат записей в обоих файлах — одно имя пользователя в каждой строке. Пробелы не разрешены.
Файлы контроля доступа считываются каждый раз, когда пользователь пытается добавить или удалить задачу cron.
Параметры команды Crontab
crontab -e | Редактирование или создание файла расписания для текущего пользователя |
crontab -l | Вывод содержимого расписания текущего пользователя |
crontab -r | Удаление файла расписания текущего пользователя |
crontab -u user | Работа с расписаниями конкретных пользователей. Доступно только суперпользователю |
Каждая запись в crontab состоит из шести полей, указываемых в следующем порядке:
minute(s) hour(s) day(s) month(s) weekday(s) command(s)
Поля разделяются пробелами или знаками табуляции. Первые пять представляют собой числовые значения, а шестое — это команда, которая будет выполняться. В следующей таблице кратко описывается каждое из полей:
Поле | Диапазон значений | Описание |
---|---|---|
minute | 0-59 | Минута запуска команды |
hour | 0-23 | Час запуска |
day | 1-31 | Число (день) запуска |
month | 1-12 | Месяц запуска |
weekday | 0 — 6 | День недели запуска (воскресенье = 0, понедельник = 1, вторник = 2 и т.д.) |
command | Последовательность команд для выполнения. Это могут быть команды, исполняемые файлы (например, скрипты) или комбинации файлов. |
Примечание: значение первых пяти полей может быть либо * (звездочкой), что означает все допустимые значения, либо списком элементов, разделенных запятыми. Элемент является либо числовым, либо диапазоном чисел, обозначенным двумя значениями, разделенными тире (например, 10-12).
Примеры использования
Запуск скрипта каждый понедельник в 9:00 и 18:00 часов:
0 9,18 * * 1 /home/ivan/script.sh
Запуск скрипта каждый день в 0:30 и 12:30:
30 */12 * * * script.sh
Запуск команды каждый месяц 1 числа в 12:00:
0 12 1 * * command
Запуск скрипта в полночь с понедельника по пятницу:
0 0 * * 1-5 /home/ivan/script.sh
Запускать в 0 и 30 мин каждый час с 10 до 19:
0,30 10-19 * * 1-5 php ~/warehouseApp/getMts.php
Запускать в 0 мин, в 20 часов с понедельника по пятницу:
0 20 * * 1-5 php ~/warehouseApp/exJsonExportAuto.php 1
Запускать в 1 мин каждый час и сохранять принт скрипта в файл с текущей датой и временем:
1 * * * * php ~/script.php >> ~/logs/$(date +\%Y-\%m-\%d-\%H-\%M-\%S).log 2>&1
Запускать в 0 мин, в 6, 9, 12, 15, 18 и 21 час:
0 6,9,12,15,18,21 * * * php ~/app/groupAdd.php
Запуск в 1 мин, в 1, 10, 14, 16, 21 час с отцепом и без сохранения результата:
1 1,10,14,18,21 * * * bash /opt/sync_cloud.sh > /dev/null 2>&1
Перезагрузка сервера по крону каждые сутки в 1:55:
55 1 * * * /sbin/reboot -h now
для поиска: компа