Полный автомат по крону

Что такое сron

cron — демон-планировщик задач в UNIX-образных операционных системах, использующийся для периодического выполнения заданий в заданное время. Подробнее о нём можно узнать здесь: http://ru.wikipedia.org/wiki/Cron У парсера новостей FDE Grabber имеется 4 этапа работы:

  1. кроновский скрипт путь_к_грабберу/crontab_feeds.php определяет один из доступных источников получения статей (RSS/Atom/HTML источник) и обновляет его. Если, при этом, имеются новые статьи (уникальность статьи определяется по названию), то статьи будут добавлены в качестве задания для получения По мере запуска данного кроновского скрипта, источники обновляются по кругу Каждому запуску скрипта соответствует одно обновление одного из доступных источников
  2. кроновский скрипт путь_к_грабберу/crontab_articles.php смотрит на задания для получения статей и получает статью. Одному запуску данного скрипта соответствует одно получение статьи
  3. кроновский скрипт путь_к_грабберу/crontab_downloads.php скачивает, если это необходимо, прикреплённый файл к полученной  на 2 этапе статье.
  4. кроновский скрипт путь_к_грабберу/crontab_publicate.php публикует полученные статьи в вашу CMS

наиболее оптимальными режимами обновления кроновских скриптов системы наполнения сайтов FDE Grabber являются такие:

crontab_feeds.php - обновляем каждые 5 минут crontab_articles.php - обновляем каждые 2 минуты crontab_downloads.php - обновляем каждую минуту crontab_publicate.php - обновляем каждые 4 минуты

Перед тем, как добавлять задания для запуска кроновских скриптов, нам потребуется выяснить путь к PHP интерпретатору на сервере. Узнать этот путь можно несколькими способами:

  1. посмотреть расположение файлов на диске, скорее всего потребуются права администратора сервера
  2. пойти на поклон к хостеру и спросить :-)
  3. если имеется доступ через SSH - выполнить в командной строке: whereis php
  4. выполнить один из следующих скриптов:

<?php echo `whereis php`; ?>

<?php echo exec(’whereis php’); ?>

<?php echo system(’whereis php’); ?>

Предположим, что мы выяснили путь к PHP интерпретатору на нашем сервере, и он выглядит так: /usr/bin/phpТогда, задания для запуска скриптов будут выглядеть так:

*/5 * * * * /usr/bin/php путь_к_грабберу/crontab_feeds.php > /dev/null 2>&1
*/2 * * * * /usr/bin/php путь_к_грабберу/crontab_articles.php > /dev/null 2>&1
*   * * * * /usr/bin/php путь_к_грабберу/crontab_downloads.php > /dev/null 2>&1
*/4 * * * * /usr/bin/php путь_к_грабберу/crontab_publicate.php > /dev/null 2>&1

где путь_к_грабберу- это полный путь к грабберу на сервере, например /var/www/grabber.ru/fde

Узнать полные пути к кроновским скриптам граббера можно в разделе граббера "ручной крон"

По большому счёту, кроновские скрипты парсера контента FDE Grabber можно запускать и не зная пути к интерпретатору, например в таком виде:

*/5 * * * * php -f путь_к_грабберу/crontab_feeds.php > /dev/null 2>&1
*/2 * * * * php -f путь_к_грабберу/crontab_articles.php > /dev/null 2>&1
*   * * * * php -f путь_к_грабберу/crontab_downloads.php > /dev/null 2>&1
*/4 * * * * php -f путь_к_грабберу/crontab_publicate.php > /dev/null 2>&1

Кроме того, мы можем запускать кроновские срипты граббера и через утилиту wget. Пусть, например, URL граббера выглядит так: http://test.com/ - тогда запуск кроновских скриптов через wget по крону будет выглядеть следующим образом:

*/5 * * * * wget -O /dev/null -q http://test.com/crontab_feeds.php >/dev/null 2>&1
*/2 * * * * wget -O /dev/null -q http://test.com/crontab_articles.php >/dev/null 2>&1
*   * * * * wget -O /dev/null -q http://test.com/crontab_downloads.php >/dev/null 2>&1
*/4  * * * * wget -O /dev/null -q http://test.com/crontab_publicate.php >/dev/null 2>&1

Разделы сайта

Форум web-разработчиков

Последние записи