Нередко по тем или иным причинам возникает необходимость автоматически настроить на заданное время какой-нибудь php-скрипт. Некоторым web-специалистам при этом приходится сталкиваться с определенными проблемами.
В WordPress, к примеру, такой плагин, как Google XML Sitemaps, начинает свою работу только при публикации поста. Таким образом, получается, что пост включится в карту сайта лишь после того, как будет загружен и опубликован в админке в то же самое время, а не настроен на другую дату. Однако есть несколько способов решения этой проблемы. Так, можно написать специальный php-скрипт, ежедневно запускающий нужный плагин. Другие web-мастеры пишут более удобный вариант скрипта, позволяющий каждый день мониторить новые комментарии и даже информировать о результатах по электронной почте.
Чтобы наполнить сайт контентом, при желании еще можно парсить какую-либо RSS-ленту раз в сутки. Упростить же все эти задачи и автоматизировать процесс позволяет cron. Он дает возможность быстро настроить все необходимые php-скрипты. Интервал же выполнения заданий составит порядка 5 минут. Кроме того, на хостинге будет созданное задание под названием logrotate. Именно оно каждые 24 часа будет начинать архивацию лог-файлов и подсчитывать статистику.
Запуск через веб-интерфейс
Установить настройки cron довольно просто, поскольку на данный момент он представлен во всех web-интерфейсах практически всех хостеров. В зависимости от провайдера он может несколько отличаться по структуре, но общая система действий остается той же. Чтобы его запустить, потребуется прописать полный путь к скрипту от локального каталога, расположенного на хосте, а также указать периодичность. Все это делается, как правило, в специальной выпадающей форме.
Правила команд cron
При настройке следует учитывать определенные правила. В частности, все перечисленные в форме параметры должны быть указаны в обязательном порядке. В том случае, если указывать вообще нечего, нужно поставить звездочку. Также стоит отметить, что периодичность задается через дробь.
Например, */8 = 1, что означает – один раз в восемь минут или часов. При этом через запятую можно выбрать даже несколько вариантов, указав дополнительно и интервалы в две, пять или 7 минут.
Еще надо не забыть указать и конкретную команду, которая и должна быть запущена. Кстати, по мнению профессионалов, если для выполнения команды требуется большое количество ресурсов, то лучше задание выполнять ночью. Обычно с 2 часов ночи до 8 утра нагрузка на серверы довольно мала, поэтому сбоев в работе не будет.
Примеры выполнения команд cron
Выполнять скрипт каждый понедельник в 12:30
30 12 * * 1 /usr/bin/php/home/.../скрипт_для_cron.php
Выполнять скрипт каждый день в 15, 17 и с 21 до 22 часов:
0 15,17,21-22 * * * /usr/bin/php/home/.../скрипт_для_cron.php
Следует напомнить и о том, что для запускаемых через cron программ есть ряд ограничений, которые касаются количества доступной памяти, ограничений размеров файлов и времени выполнения тех или иных программ. Есть ограничения и конкретно на периодичность запуска программы. Они не должны происходить чаще одного раза в час.
Cron очень удобно применять при работе, связанной с сайтами на WordPress. Все же настройки можно изменить в любой момент, адаптировав их под новую задачу.