Администрирование сайта. Cron – запускаем скрипты по расписанию.

Владимир | | Разное.

Рано или поздно у каждого web мастера возникает необходимость регулярно выполнять какие-нибудь операции на сервере хостера (создавать резервные копии базы данных, удалять временные файлы и т.п.). Заниматься этими вещами быстро надоедает и появляется желание автоматизировать процесс.

К счастью, эта задача довольно легко решается. Все, что вам нужно, это возможность управлять планировщиком задач.

В операционных системах семейства UNIX, которые сейчас установлены у большинства хостеров, используется планировщик задач под названием Cron.

Принцип его работы очень простой. Вы создаете задание, в котором указываете команду и периодичность ее выполнения. Например: “запускать my_script.php ежедневно в 2 часа ночи“. И все. Скрипт будет запускаться автоматически в указанное время.

Рассмотрим, создание заданий немного подробнее.

В большинстве случаев хостеры предоставляю доступ к Cron через какую-нибудь панель управления. У меня установлена cPanel, поэтому на ее примере я и буду рассказывать.

Заходим в меню “Дополнительные инструменты :: Планировщик задач”, и видим перед собой пустую форму для добавления задания.

Cron: ежедневно в 3am (миниатюра)

Рис.1. Запускаем скрипт ежедневно в три часа утра

Прежде всего, нужно указать адрес eMail, на который будет отправлено письмо с результатами выполнения задания.

После этого, указываем саму команду. Например,
php путь_к_скрипту/имя_скрипта.php
Естественно, можно вызвать скрипт, написанный на perl или python, или вообще выполнить любую команду. Главное, чтобы у вас были права для ее выполнения.

Теперь осталось указать периодичность выполнения команды.

Тут просто выбираем нужное время и день запуска. Учтите, что список “Минут(s)” имеет имеет одну особенность. Если в нем указано значение “0”, то скрипт будет выполняться не чаще чем один раз в час (в зависимости от настроек в других списках).
Например, на рис.1 показаны настройки для запуска скрипта ежедневно в три часа утра.

Рассмотрим еще примеры:

Cron: запуск каждые 15 мин (миниатюра)

Рис.2. Запускаем скрипт каждые 15 минут

Cron: запуск 20 января в 5 утра (миниатюра)

Рис.3. Запускаем скрипт один раз в год 20 января в пять часов утра.

Как видите, периодичность может изменяться в очень широких пределах.

Теперь осталось проверить настройки и нажать кнопку «Сохранить задания».

После выполнения скрипта на указанный email, Cron daemon отправит письмо с результатами выполнения скрипта.
Например, такими:
Parse error: syntax error, unexpected….. 🙂

Отсюда мораль – проверяйте скрипты перед установкой их на сервере.

Кроме того, учтите, что ресурсы серверов не безграничны. И большинство хостеров очень не любят скрипты, которые выполняются дольше 30 сек или используют более n% памяти (конкретные числа зависят от хостера и тарифного плана). Фраза “очень не любят” означает, что выполнение скрипта будет заблокировано.

Поэтому, если вы планируете установить какие-нибудь ресурсоемкие скрипты, проконсультируйтесь со службой техподдержки хостера (желательно до того, как отдадите деньги).

Постовой

Уборка квартир занятие не самое интересное. Пусть кто-нибудь сделает это за вас!

  • Хотелось бы конечно немного поподробнее

    • А что именно подробнее?

      • alex

        у меня почему то не выполняет скрипт. Скрипт email рассылки. пишет что путь не найден. хотя все верно указано.

        • Давайте немного подробнее. Вы залили скрипт на сервер, создали задачу cron. Что дальше? Вам пришло письмо с описанием ошибки?
          Какой именно путь не найден? Сам скрипт не найден или не найден путь к файлам, которые этот скрипт использует?
          Очень сложно что-то определенно сказать из вашего описания.

  • Хотелось бы конечно немного поподробнее

    • А что именно подробнее?

      • alex

        у меня почему то не выполняет скрипт. Скрипт email рассылки. пишет что путь не найден. хотя все верно указано.

        • Давайте немного подробнее. Вы залили скрипт на сервер, создали задачу cron. Что дальше? Вам пришло письмо с описанием ошибки?
          Какой именно путь не найден? Сам скрипт не найден или не найден путь к файлам, которые этот скрипт использует?
          Очень сложно что-то определенно сказать из вашего описания.

  • Привет. Подскажите, как перевести блог с дарового хостинга, вот мой блог блог
    Вроде как wordpress должен с легкостью двигаться на свежую площадку, но у меня все время промахи в базе данных. Я посмотрел там, хотя в php ничего не знаю как говорится и привлекать сторонних разработчиков программного обеспечения то же не хочется. Может подскажите, как неболезненно перенести блог?

    • Если домен остается прежним, то вам нужно сделать дамп базы данных (например, с помощью phpMyAdmin). После этого импортируете его на новом хостинге.
      Если домен изменяется, то нужно соответствующим образом изменить все внутренние ссылки (для этого подойдет какой-нибудь редактор вроде notepad++).
      Если столкнетесь с ошибками, пишите, только, пожалуйста, максимально подробно, иначе сложно что-то конкретное сказать.

  • Привет. Подскажите, как перевести блог с дарового хостинга, вот мой блог блог
    Вроде как wordpress должен с легкостью двигаться на свежую площадку, но у меня все время промахи в базе данных. Я посмотрел там, хотя в php ничего не знаю как говорится и привлекать сторонних разработчиков программного обеспечения то же не хочется. Может подскажите, как неболезненно перенести блог?

    • Если домен остается прежним, то вам нужно сделать дамп базы данных (например, с помощью phpMyAdmin). После этого импортируете его на новом хостинге.
      Если домен изменяется, то нужно соответствующим образом изменить все внутренние ссылки (для этого подойдет какой-нибудь редактор вроде notepad++).
      Если столкнетесь с ошибками, пишите, только, пожалуйста, максимально подробно, иначе сложно что-то конкретное сказать.

  • http://private-seo-soft.blogspot.com/2010/04/crontab.html
    тут я описал детально все оп пунктам весь процесс настройки крона вручную и через DirectAdmin

    • У cPanel интерфейс вроде приятнее, чем в DirectAdmin 😉

  • http://private-seo-soft.blogspot.com/2010/04/crontab.html
    тут я описал детально все оп пунктам весь процесс настройки крона вручную и через DirectAdmin

    • У cPanel интерфейс вроде приятнее, чем в DirectAdmin 😉

  • Soft

    пытаюсь сделать автозапуск файла для CodeIgniter, на форуме фрамеворка мне посоветовали http://code-igniter.ru/forum/topic2206.html, если у вас есть опыт подскажите

  • Судя по обсуждению на форуме, с проблемой вроде разобрались. Или есть еще вопросы?

    • Vert4

      При запуске php скрипта через Cron, скрипт выдает ошибку «не найден файл определите путь к файлу» (это файл с которым работает скрипт). При прямом запуске скрипта, скрипт выполняется и такой ошибки не выдает.

      • Я правильно понял, что «Прямой запуск» — это запуск через браузер?

        Когда вы запускаете скрипт через cron, то должны указать его размещение на сервере (не URL !), т.е. что-то вроде
        /home/www/my_script.php

  • Игорь

    Здравствуйте, Владимир.
    У меня ситуация такая — сайт написан на CodeIgniter и страницы имеют вид типа http://www.mysite.com/period/clear Как все-таки заставить Cron выполнить такую страницу если он требует обязательного указания задания в виде page.php?

  • Виталий Янчук

    на самом деле все куда проще и описано здесьhttps://shneider-host.ru/blog/cron-v-cpanel-zapusk-skripta-po-raspisaniyu.html, зачем так усложнять жизнь? более свежая информация))