Использовать php для задания заданий cron в Windows

Я ищу способ установить работу cron с помощью PHP. Все, что я хотел бы сделать, это запустить PHP-скрипт в определенное время. Сначала пользователь вводит время в скрипте, в соответствии с указанным временем сервер запускает скрипт. Я использую окна 7 и xampp.

Я нашел:

  1. Создайте php-файл, который вызывает файл cron.php: используя блокнот (или что-то еще), вставьте следующее в новый файл: $ data = file («http://pearl.supplychain.com/cron.php»); вам нужно поместить его в обычные теги php с «меньше знака»? php спереди, а? «Больше, чем знак» в конце. (Я не могу просто набрать это, потому что это «подозрительный контент», а drupal не позволяет его). Сохраните его как executecron.php в том же каталоге, что и cron.php (htdocs).

  2. Настройте запланированное задание, которое вызывает это регулярно:

    1. Open Start-All Programs-Accessories-System tools-Scheduled tasks.
    2. Дважды щелкните по запланированным задачам.
    3. Настройте ежедневную задачу, которая начинается в 12:00 и запускается каждые полчаса (или что-то еще) до 23:59. Скажите заданию «запустить» следующее:

      C:\cms\xampp\php\php.exe c:\cms\xampp\htdocs\executecron.php 

      (В этой системе php.exe установлен в C: \ cms \ xampp \ php, но вам, вероятно, придется изменить путь).

Как вы можете видеть, для этого необходимо Open Start–All Programs–Accessories–System tools–Scheduled tasks.

Может ли это быть конкретным с помощью php-кода или другим способом сделать это? Потому что я хочу, чтобы вся работа, выполненная на php / server, вместо того, чтобы мой пользователь настраивал работу cron самостоятельно. Что означает, что я хочу, чтобы мой PHP-код мог установить cron на сервере, а сервер будет смотреть на cron?

К stefgosselin:

Чтобы создать пакетный файл

 Open Notepad. Paste the line "C:\xampp\php\php.exe C:\wamp\www\index.php" Click "File" -> "Save As" Ensure "Save as type:" is set to "All Files" Save the file as "cron.bat" to your C drive 

Чтобы запланировать запуск командного файла

 Open Command Prompt Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat" Press Enter This will make the script run every 20 minutes, the first time 20 minutes from now. 

Я могу создать файл ванны с помощью php, однако, есть ли способ Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat используя php вместо используя os? Спасибо

спасибо

Я нашел ответ на этот вопрос на waytocode.com

Они предоставляют 3 возможных решения для запуска заданий cron в Windows:

Решение-1 с использованием планировщика заданий

В Windows 7 / Windows 2005/2008.

Перейдите в Startmenu-> All Programs-> Accessories-> System Tools-> Task Scheduler-> create Task

В новом окне:

  1. Общие (дайте имя задачи и для тестирования вы можете выбрать «Запустить при входе пользователя»)

  2. Триггер (вы можете выбрать интервал работы как «ежедневно, еженедельно, ежемесячно»).

  3. Действие (Это самая важная часть. Выберите Mozilla firefox в качестве «программы / скрипта», а в аргументе укажите URL-адрес, который будет запускаться с помощью Firefox Firefox).

Решение-2 с использованием планировщика заданий и PHP с вашего сервера XAMPP

В Windows Xp нет необходимости копировать или устанавливать что-либо (уже PHP установлен на сервере, таком как XAMPP)

Планировщик Goto Task

Создайте задание, задайте время выполнения, затем в параметре опциональной настройки в текстовом поле команды «RUN»

 C:\xampp\php\php.exe -fc:/xampp/htdocs/waytocode/mycron.php 

В Windows 7 / server 2005/2008

Нет необходимости копировать или устанавливать что-либо (уже установлен PHP на сервере)

Создание задания дает время выполнения в настройке триггера. Затем в параметре «Действие» в текстовом поле команды «Программа / Сценарий»

 C:\xampp\php\php.exe 

и в поле «Добавить аргументы (необязательно)»

 -fc:/xampp/htdocs/mycron.php 

Решение-3 устанавливает файл exe Windows, который будет имитировать задание cron из системы * nix

Мне не нравится устанавливать какой-либо exe-файл на мои серверы или машину разработки, но я предоставил решение по мере их публикации:

В Windows Xp скопируйте все 2 файла DLL с помощью wget.exe в папку C: \ windows

Создание задания дает время выполнения, а затем в опции опережающей настройки в текстовом поле команды «RUN»

 C:\Windows\wget.exe -q -O NUL http://localhost/mycron.php 

В Windows 7 / server 2005/2008 скопируйте все 2 файла DLL с помощью wget.exe в папку C: \ windows

Создание задания дает время выполнения, а затем в параметре опережающей настройки в текстовом поле команды «Программа / Сценарий»

 C:\Windows\wget.exe 

и в поле «Добавить аргументы (необязательно)»

 -q -O NUL http://localhost/mycron.php 

Решение-4 с использованием .bat-файла и планировщика задач

Я нашел его здесь, в Stackoverflow, и он похож на первые 2:

  1. Создайте файл cron.php (код, который вы хотите выполнить с регулярным интервалом)

  2. Создайте файл CRON.BAT, скопируйте и запустите приведенный ниже код в файле

    D: \ xampp \ php \ php.exe D: \ xampp \ htdocs \ Application \ cron.php

Путь, который я написал, соответствует моему файлу xampp и cron.php, обновляет путь к файлам в соответствии с вашим системным каталогом

  1. Планирование задачи Нажмите «Пуск»> «Все программы»> «Стандартные»> «Служебные»> «Запланированные задачи»

Или вы можете перейти непосредственно к панели управления> по расписанию

Щелкните правой кнопкой мыши в папке «Создать»> «Задание расписания»

Дайте соответствующее имя Задаче. В текстовом поле RUN … Введите полный путь к файлу CRON.BAT, в моем случае это

 D:\xampp\htdocs\Application\CRON.BAT 

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

Решение-5

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

Используйте внешнюю онлайн-службу работы cron.

https://www.google.ca/search?q=cron+job+online+service

Выберите одно решение, которое вам больше подходит. Надеюсь, это поможет кому-то.

ОБНОВИТЬ

Решение-6 (Основано на ответах ниже и работает с CodeIgniter тоже!)

Создайте файл cron.bat и напишите следующую команду и сохраните ее.

 @ECHO OFF c: cd C:\Program Files\Internet Explorer START iexplore.exe http://localhost/path/to/cron/job/1 

Создание задания дает время выполнения в настройке триггера. Затем в параметре «Действие» в текстовом поле команды «Программа / Сценарий»

 C:\xampp\path\htdocs\folder\includes\cron.bat 

END UPDATE

Отвечая на ваш вопрос:

Может ли это быть конкретным с помощью php-кода или другим способом сделать это? Потому что я хочу, чтобы вся работа, выполненная на php / server, вместо того, чтобы мой пользователь настраивал работу cron самостоятельно. Что означает, что я хочу, чтобы мой PHP-код мог установить cron на сервере, а сервер будет смотреть на cron?

Существуют и другие способы сделать это:

Использование cron-менеджера из PHP Использование cron-менеджера из PHP

Управление работами Cron с помощью PHP http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php-2–net-19428

К сожалению, все решения с PHP нуждаются в типе сервера * nix и / или cPanel и более или менее сложны в реализации.

Хорошо, если я правильно понял, вы хотели бы создать задание cron, созданное в системе, без необходимости создания задачи.

В принципе, это можно легко сделать в файле .bat (который можно даже вызывать из php). Приложение schtasks может легко автоматизировать создание запланированной задачи. Например:

 schtasks /create /tn UNO /tr YOURAPP.EXE /sc HOURLY /mo 2 

См. Официальную страницу поддержки MS для получения дополнительной информации об этом отличном приложении.

Другим вариантом, который может быть проще для пользователя, является использование установщика. Я не создал это много приложений Windows самостоятельно, но имел удовольствие играть с NSIS , и это приложение также имеет возможности для создания запланированных задач, среди многих других функций, которые слишком многочисленны, чтобы их назвать. Настоятельно рекомендуется, если вам нужен пакет, устанавливаемый пользователем.

Надеюсь, что это помогает, счастливый друг.

Еще один отличный инструмент доступен бесплатно в Windows, nncron. Он использует тот же синтаксис, что и unix 'cron:

http://www.nncron.ru/

Мне легче управлять этим ужасным schtasks 🙂

Версия Lite является той, которую я бы предложил использовать. Полная версия поддерживает скрипты в конфигурационных файлах. Это может быть удобно, но как-то по сравнению с обычными рабочими местами.

Шаги Создание Cron в Windows:

Шаг 1> Создайте .bat-файл

  1. open notepad. 2. click File -> Save As. 3.Give the file a name ie MyBatchFile.bat Underneath the filename box change the file type to All Files. The .bat on the end of the filename will instruct the PC to open it as a batch file. 

Шаг 2> В MyBatchFile.bat напишите следующую команду

  ECHO OFF START File Full Path write here like http://www.google.com 

Шаг 3> Открыть Start-All Programs-Accessories-System tools-Scheduled tasks. Нажмите «Создать задачу» с правой панели. name: любой триггер: установить время из раскрывающегося списка и выбрать в день Действие: выберите файл .bat Нажмите кнопку OK

Другой довольно простой подход – powershell, чтобы получить содержимое вашего php-файла.

Task-Scheduler, target: Powershell.exe , используйте аргументы:

 -Command "(New-Object Net.WebClient).DownloadString('http://myhost/cron/cron.php')" 

(Ups, старый пост)

Шаги Создание Cron в ОС Windows:

Шаг 1> Создайте .bat-файл

  1. Open notepad. 2. Click File -> Save As. 3. Give the file a name ie MyBatchFile.bat Underneath the filename box change the file type to All Files. The .bat on the end of the filename will instruct the PC to open it as a batch file. 

Шаг 2> В MyBatchFile.bat напишите следующую команду

  ECHO OFF START File Full Path write here like http://www.google.com 

Шаг 3> Открыть Start-All Programs-Accessories-System tools-Scheduled tasks. Нажмите «Создать задачу» с правой панели. name: любой триггер: установить время из раскрывающегося списка и выбрать в день Действие: выберите файл .bat Нажмите кнопку OK