
В ОС Unix существует возможность запускать программы пользователя в указанное им время. Для этого используется программа cron, которая получает инструкции от пользователей и следуя им производит выполнение любых задач по полученным сценариям. Наши клиенты могут пользоваться данной возможностью для выполнения периодических задач.
Как настраивать cron
Конфигурирование сценариев cron производится через . Прежде всего нужно определить какие программы вы хотите запускать и узнать полные пути к ним на диске сервера. Для этого перейдите с помощью команды cd в каталог где находится запускаемая программа и узнайте полный путь к этому каталогу с помощью команды pwd. Путь может выглядеть например как /home/u12345/scripts/script.pl. Убедитесь что файл, который вы хотите запускать, имеет права на чтение+исполнение (r+x) для владельца файла.
Поменять права на нужные можно командой:
1 |
chmod 750 script.pl |
Далее выполните команду crontab -e. Вы окажетесь в текстовом редакторе vi, где сможете вводить текст сценария для cron. Краткая справка по редактору vi:
- для вставки текста нажмите i, затем вводите текст
- для удаления символов нажмите ESC, а затем наберите x
- для выхода из vi без сохранения изменений нажмите ESC, а затем наберите :q!
- для сохранения и выхода нажмите ESC, а затем наберите :wq
Задания для cron пишутся по одному в строке. После каждой строки, в том числе после последней или единственной, обязательно нужно нажать enter — иначе задания работать не будут.
Задание для cron выглядит как строка, в начале находятся пять обязательных полей для указания периодичности задания, а далее следует команда, которую нужно запускать:
1 |
поле1 поле2 поле3 поле4 поле5 команда |
Значения первых пяти полей:
- минуты — число от 0 до 59
- часы — число от 0 до 23
- день месяца — число от 1 до 31
- номер месяца в году — число от 1 до 12
- день недели — число от 0 до 7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)
Для каждого конкретного параметра можно задать несколько значений через запятую. Например, если в поле «часы» написать 1,4,22, то задание будет запущено в 1 час ночи, в 4 часа утра и в 22 часа. Можно задать интервал — 4-9 будет означать, что программу нужно запускать каждый час в период с 4 до 9 часов включительно. Символ ‘*‘ означает «все возможные значения». Например, указание ‘*‘ в поле «часы» будет означать «запускать каждый час». Символ ‘/‘ служит для указания дополнительной периодичности задания. Например, ‘*/3‘ в поле «часы» означает «каждые три часа».
Итак, как выглядит простейший сценарий cron:
1 |
0 */3 * * 2,5 /home/u12345/script.pl |
Скрипт /home/u12345/script.pl будет автоматически запускаться каждые три часа во вторник и в пятницу. Введя такой сценарий в редакторе vi выйдите с сохранением результатов редактирования и, если вы не допустили ошибок, задание будет поставлено на выполнение с указанной периодичностью. Если при редактировании были допущены ошибки, cron сообщит вам о них.
Например:
1 2 3 4 5 |
/tmp/crontab.xxxxxxx: 1 строк, 9 символов crontab: installing new crontab "/tmp/crontab.xxxxxxx":1: bad minute crontab: errors in crontab file, can't install Do you want to retry the same edit? |
Исправьте ошибки и попробуйте сохранить задание опять.
Посмотреть список уже установленных в cron сценариев можно командой crontab -l:
1 2 |
-bash-2.05b$ crontab -l 0 */3 * * 2,5 /home/u12345/script.pl |
Рекомендация: если требуется запускать какую-то программу один раз в день, особенно если она требует для выполнения больших ресурсов, выполняйте такое задание ночью, в период с 2 до 8 часов — нагрузка на серверы в это время минимальна.
Примеры использования cron
Ниже приводятся примеры заданий для cron. Надеемся, эта информация поможет вам лучше понять работу этой программы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# выполнять задание раз в час в 0 минут 0 */1 * * * /home/u12345/script.pl # выполнять задание каждые три часа в 0 минут 0 */3 * * * /home/u12345/script.pl # выполнять задание по понедельникам в 1 час 15 минут ночи 15 1 * * 1 /home/u12345/script.pl # выполнять задание 5 апреля в 0 часов 1 минуту каждый год 1 0 5 4 * /home/u12345/script.pl # выполнять задание в пятницу 13 числа в 13 часов 13 минут 13 13 13 * 5 /home/u12345/script.pl # выполнять задание ежемесячно 1 числа в 6 часов 10 минут 10 6 1 * * /home/u12345/script.pl |
Как запускать PHP-скрипты по расписанию
Вы можете выполнять запуск скриптов на языке PHP в указанное время с желаемой периодичностью. Для этого требуется использоватьPHP-CLI интерпретатор, пример использования которого описан .
Поскольку не все PHP-программы могут работать через CLI SAPI без предварительной модификации, можно запускать их через wget. Например:
It has to be the sort http://writemypaper4me.org you can love as if it were your ownor you wont be able to bring your subconscious fully to bear upon it!