За чистый и ясный код!

Статьи на тему программирования под веб, используя PHP, MySQL, Jquery и многое другое

Запуск скриптов PHP из под Cron в ОС Windows

Февраль17
Купили новые двери? Надо вырезать замки, обращайтесь.

Наверняка ни один большой сайт, проект, не обходится без участия запуска скриптов автоматом используя демон Linux cron.

Что такое крон, описывать не буду, очень хорошо об этом написано на ссылке выше. Здесь я опишу как можно запустить скрипт автоматом используя теже команды, что в Linux, но только под Windows.

Для работ необходимо скачать программку

Распаковать, в полученной папке вы увидите 3 файла:

crontab  - сюда записываются задания в формате крона
crontab.exe - это исполняемый файл
cron.log - отчет о работе крона

Далее запускаем файл crontab.exe, если надо чтобы крон стартовал сразу при запуске Windows, то помещаем его в папку автозапуска (пуск->программы->автозапуск), файл не работает как сервис, поэтому выход только такой.

Далее заходим в файл crontab и записываем команду

* * * * * d:/php5/php d:/www/test/phpinfo.php

это команда будет дергать файл d:/www/test/phpinfo.php каждую минуту.

Вот и все настройки, можете пользоваться и работать. Конечно это не полноценный демон, но главную задачу — запуск файла он делает.

В файле cron.log — будет записываться лог выполняемый кроном, вот содержимое:

17.02.2010 23:06 Cron started.
17.02.2010 23:07 d:/php5/php d:/SVN/www/test/phpinfo.php
17.02.2010 23:08 d:/php5/php d:/SVN/www/test/phpinfo.php

Для остановки работы крона, убираем его из процессов, с помощью диспетчера задач.

Всем удачи!

Статья просмотренна 67257 раз, зашло посетителей 24522

рубрика: PHP

18 комментариев в “Запуск скриптов PHP из под Cron в ОС Windows”

  1. Avatar
    web-junior пишет:

    В виндовсе есть Назначенные задания, через которые тоже можно запускать приложения автоматом. Вещь интересная, но до полноценного крона немного не дотягивает


  2. Avatar
    Станислав пишет:

    Не нужно выдавать недостаток знаний, за недостаток программы.
    Включи php.exe в path лист, и используй "Планировщик заданий" и "Службы", также исполняй свои скрипты через .bat

    А то вот начинают придумывать костыли, которые нахрен не нужны…


  3. Avatar
    maxnag пишет:

    Станислав, вы видели в каком году писалась эта статья? 2010!!! Уже много воды с той поры утекло, а для себя я просто перешел полностью на Линукс и меня он полностью устроил, все проблемы с кроном, настройками прочих программ ушли на второй план. В общем я стал работать в том, что используется на проде.


  4. Avatar
    Станислав пишет:

    А причем тут 2010? В каких из ОС Windows небыло cmd.exe, до 2010 года?
    Windows 2000 — Windows NT 5.0 (2000 год)
    Windows XP — Windows NT 5.1 (2001 год)
    Windows XP 64-bit Edition — Windows NT 5.2 (2003 год)
    Windows Server 2003 — Windows NT 5.2 (2003 год)
    Windows XP Professional x64 Edition — Windows NT 5.2 (2005 год)
    Windows Vista — Windows NT 6.0 (2006 год)
    Windows Home Server — Windows NT 5.2 (2007 год)
    Windows Server 2008 — Windows NT 6.0 (2008 год)
    Windows Small Business Server — Windows NT 6.0 (2008 год)
    Windows 7 — Windows NT 6.1 (2009 год)

    Если Вы не умели, не умеете, или чего то не знаете, и т.д. Не надо это сваливать на недостаток ОС или ПО. А статья о том как прикрутить ненужный костыль, и запускать скрипты левой ногой через правое ухо.
    Подобные статьи, вводят людей в заблуждение, и приводят к нежелательным последствиям.
    P.S.
    Пингвины не всегда подходят, под требуемые задачи. А жаль.. 🙁


  5. Avatar
    maxnag пишет:

    Станислав, раз вы так шарите в Винде, то где ваша статья которая поясняет людям как пользоваться "кроном"???? Вы сделали какие-то шаги чтобы помочь? Или вы только можете критиковать?

    Я хоть это сделал.

    ЗЫ А год притом, что в то время я много не знал.


  6. Avatar
    Станислав пишет:

    Моя статья? Еще и для тех, кто читать не умеет, или не хочет думать?
    Описание cron:
    демон-ПЛАНИРОВЩИК ЗАДАЧ в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.

    В Windows есть свой планировщик, так и называется — Планировщик заданий.

    Родная документация к php и Windows:
    Командная строка PHP в Microsoft Windows — http://php.net/manual/ru/install.windows.commandl
    Планирование задачи — Справка Windows — http://windows.microsoft.com/ru-ru/windows/schedu

    О каких дополнительных статьях, Вы говорите? Какое программирование и web разработка, если человек не может или не хочет, прочесть справку к тому, на чем собирается работать? Это начальный уровень обучения.. Начальный! Причем обучения пользователя, а не разработчика….

    ИМХО
    Windows плох для сервера вообще и для web в частности, только тем, что стоит денег. Пингвины распространяются бесплатно.


  7. Avatar
    DAVIDhaker пишет:

    Есть, но удобнее крон юзать! (Поймут лишь линуксоиды!)


  8. Avatar
    maxnag пишет:

    Это да!


  9. Avatar
    Максим Нагайченко пишет:

    Да конечно не дотягивает, но в принципе для теста (а имеено для чего под виндой запускать) покатит. Спасибо большое за ссылку, ссылка полезная!!!


  10. Avatar
    TiamatInc пишет:

    Интересное решение. Просто и со вкусом.


  11. Avatar
    Андрей пишет:

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


  12. Avatar
    maxnag пишет:

    Перейдите на Linux. С виндой я не хочу дружить…


  13. Avatar
    Vit пишет:

    Спасибо! Все работает.

    @Андрей:
    У меня несколько команд записанных через перевод строки работают. Возможно у тебя какая-то не та кодировка в редакторе стоит. Убедись что у тебя в качестве перевода строки стоит <CR><LF>. Это можно посмотреть в Notepad++ включив режим отображения всех символов (Вид>Отображение символов>Отображать все символы)


  14. Avatar
    Сергей пишет:

    Подскажите пожалуйста, какая команда должна быть, чтобы дергал файл каждые 5 или 30 минут?
    Пробовал вписывать как в линуксе, не работает.


  15. Avatar
    maxnag пишет:

    Привет, вы знаете я уже года 4 как перешел на Линукс и не жалею об этом, поэтому я уже не могу вам подсказать как работает это программа


  16. Avatar
    злой гена пишет:

    осталось только вздрочнуть на линкус


  17. Avatar
    Nik пишет:

    а как указать запуска каждые n минут? Например */2 * * * * возвращает ошибку Error in crontab, line 1: improper value.


  18. Avatar
    Андрей пишет:

    А не подскажете, как изменить расписание выполнения задач? Т.е. чтобы он не каждую минуту выполнялся, а, скажем — раз в сутки или каждую неделю?


не публикуется

пример

Оставить комментарий или два:

  

Облако тегов

cli csv dump events form Kohana locale models MySQL mysqldump orm PHP tools trigger validate газ газовый счетчик итоги кеширование переменные

Облако тегов плагина WP Cumulus для WordPress требует для просмотра Flash Player 9 или выше.

Я на твиттере!

  • у твиттера тоже бывают перерывы...

Календарь

Февраль 2010
Пн Вт Ср Чт Пт Сб Вс
« Янв   Мар »
1234567
891011121314
15161718192021
22232425262728

Сейчас на сайте