Cron для windows php

Содержание
  1. Планировщик заданий
  2. Аналог Cron в Windows
  3. Запуск PHP скрипта в планировщике заданий
  4. ИТ База знаний
  5. Полезно
  6. Навигация
  7. Серверные решения
  8. Телефония
  9. Корпоративные сети
  10. Курс по сетям
  11. 15 примеров команды PING для диагностики сети
  12. Руководство по команде grep в Linux
  13. Рекурсивно найти слово в файлах и папках Linux
  14. Объяснение структуры каталогов Linux
  15. Еще 15 полезных примеров использования cURL
  16. Как установить права доступа в Linux
  17. Загрузка ОС Linux — процесс
  18. Планировщик CRON — запуск программ по расписанию
  19. Что такое файл Crontab
  20. Синтаксис Crontab и операторы
  21. Общесистемные файлы Crontab
  22. Предопределенные макросы
  23. Команда Crontab
  24. Переменные Crontab
  25. Ограничения Crontab
  26. Примеры Cron заданий
  27. Создание сайта на WordPress
  28. Что как и почему в WordPress
  29. Задания Cron на выполнение php-скриптов
  30. Задания Cron
  31. Права доступа
  32. Добавление задания Cron в ISPmanager
  33. Добавление задания Cron в cPanel
  34. Особенности выполнения php-скрипта в задании Cron
  35. Задания Cron на выполнение php-скриптов : 14 комментариев

Планировщик заданий

Про Cron – демон Unix-систем, позволяющий автоматически запускать скрипты по заданному расписанию, слышал, наверное, каждый, кто хотя бы раз пробовал создать сайт самостоятельно. Cron позволяет легко автоматизировать запуск различных скриптов без участия пользователя. Веб-мастеру или SMM-щику это может понадобиться для автоматизированного сбора различной информации, которая постоянно обновляется (например, вы можете «заставить» скрипт получать последнее сообщение из своей группы в VK и вы водить его на своем сайте), или публикации новостей или постов на сайтах и в пабликах ВКонтакте в заданное время.

Аналог Cron в Windows

Сегодня работа с Cron возможна практически на любом shared-хостинге, за исключением совсем уж дешевых. Однако в некоторых случаях удобнее запускать скрипты со своего компьютера Windows. Особенно это актуально при работе с социальной сетью ВКонтакте, которая может затребовать капчу или даже временно заблокировать вам доступ, если вдруг скрипт с вашим токеном обратиться к сайту из «непривычного места», то есть будет иметь IP-адрес другой страны или даже города.

В этом случае на помощь придет встроенная в Windows программа – Планировщик заданий.

Для ее запуска просто введите в строку «Выполнить» в меню «Пуск» Taskschd.msc. Перед вами откроется окно, где (возможно, если вы не являетесь опытным пользователем ПК, то удивитесь :)) в списке «Библиотека планировщика заданий» уже имеется несколько задач. В основном, они связаны с работой антивирусного ПО и автоматического обновления некоторых программ.

Затем щелкаем по строке меню «Действие» и выбираем пункт «Создать задачу». Перед вами появится окно для ввода настроек. Если на вашем компьютере аккаунт только одного пользователя, вкладку «Общие» можно оставить без изменений.

Основная интересующая нас вкладка — «Триггеры». Жмем на кнопку «Создать» и выбираем опцию «Начать задачу». Выстраиваем настройки, в зависимости от того, как часто требуется запускать скрипт. Обратите внимание на пункт «Дополнительные параметры», который позволяет запускать скрипт каждый несколько минут или каждый час.

Жмем на кнопку «Создать» на вкладке «Действия». И в появившимся окне, кликнув на кнопку «Обзор», указываем путь к программе или скрипту, запуск которого вы хотите автоматизировать.

Проще всего использовать Планировщик заданий в совокупности со скриптами VBS, которые написаны на встроенном языке Windows и не требуют для запуска никакого дополнительного софта. При знании VBScript на написание необходимых скриптов уйдет совсем немного времени.

Вот, например, скрипт, отправляющий текст из файла 1.txt на стену паблика ВКонтакте. Естественно, параметр owner_id необходимо заменить на ID нужного паблика, а в параметре access_token указать свой токен.

Dim fso,ts,stroka
Adress = «1.txt»
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set ts = fso.OpenTextFile(Adress, , 1, False)
stroka = ts.ReadAll
ts.Close
Dim objHTTP
Set objHTTP = CreateObject(«Microsoft.XMLHTTP»)
Url = «https://api.vk.com/method/wall.post?owner_id=-1&friends_only=0&from_group=1&message=»&stroka&»&signed=0&mark_as_ads=0&ads_promoted_stealth=0&v=5.62&access_token=»
Call objHTTP.Open(«GET», Url, False)
Call objHTTP.Send

Запуск PHP скрипта в планировщике заданий

С PHP (а также Perl, Python, Ruby и некоторыми другими скриптами) несколько сложнее. Дело в том, что Windows не содержит встроенных инструментов, позволяющих их запускать, а при щелчке мышью по файлу с расширением .php откроется текстовый блокнот, а не выполнятся записанные там команды.

Поэтому вам понадобится установить интерпретатор, чтобы выполнять скрипты как обычную программу. Самое простое решение для запуска PHP в Windows – это Денвер, он же «Джентельменский набор веб-разработчика».
После этого запускать PHP скрипты в «Планировщике заданий» можно будет создав bat-файл с указанием пути к интерпретатору скрипта и к самому скрипту, например:

Читайте также:  Установка цветового профиля mac os

После в «Планировщике заданий» необходимо указать путь к bat-файлу, который и будет периодически запускать нужный скрипт.

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Курс по сетям

15 примеров команды PING для диагностики сети

Руководство по команде grep в Linux

Рекурсивно найти слово в файлах и папках Linux

Объяснение структуры каталогов Linux

Еще 15 полезных примеров использования cURL

Как установить права доступа в Linux

Загрузка ОС Linux — процесс

Еженедельный дайджест

Планировщик CRON — запуск программ по расписанию

Время планировать задачи

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

Обучайся в Merion Academy

Пройди курс по сетевым технологиям

Начать

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

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

Что такое файл Crontab

Crontab (таблица cron) представляет собой текстовый файл, который определяет расписание заданий cron. Существует два типа файлов crontab. Общесистемные файлы crontab и отдельные пользовательские файлы crontab.

Файлы crontab пользователей именуются в соответствии с именем пользователя, и их расположение зависит от операционной системы. В дистрибутивах на основе Red Hat, таких как CentOS, файлы crontab хранятся в каталоге /var/spool/cron , а файлы Debian и Ubuntu хранятся в каталоге /var/spool/cron/crontabs .

Хотя вы можете редактировать пользовательские файлы crontab вручную, рекомендуется использовать команду crontab .

/etc/crontab и файлы в каталоге /etc/cron.d являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.

В большинстве дистрибутивов Linux вы также можете помещать скрипты в каталоги /etc/cron. , и скрипты будут выполняться каждый час/день/неделю/месяц.

Синтаксис Crontab и операторы

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

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

  • * — оператор звездочки означает любое значение или всегда. Если в поле «Час» имеется символ звездочки, это означает, что задание будет выполняться каждый час.
  • , — оператор запятой позволяет указать список значений для повторения. Например, если у вас есть 1,3,5 в поле Час, задание будет выполняться в 1, 3 и 5 часов утра.
  • — — оператор дефиса позволяет указать диапазон значений. Если в поле «День недели» указано значение 1–5, задание будет выполняться каждый рабочий день (с понедельника по пятницу).
  • / — оператор косой черты позволяет указать значения, которые будут повторяться в течение определенного интервала между ними. Например, если в поле «Час» указано */4 , это означает, что действие будет выполняться каждые четыре часа. Это то же самое, что указание 0,4,8,12,16,20. Вместо звездочки перед оператором косой черты можно также использовать диапазон значений, 1-30/10 означает то же, что и 1,11,21.

Общесистемные файлы Crontab

Синтаксис общесистемных файлов crontab немного отличается от пользовательских crontabs . Он содержит дополнительное обязательное поле пользователя, которое указывает, какой пользователь будет запускать задание cron.

Предопределенные макросы

Существует несколько специальных макросов расписания Cron, используемых для определения общих интервалов. Вы можете использовать эти ярлыки вместо указания даты в пять столбцов.

  • @yearly (или @annually ) — запускать задание один раз в год в полночь (12:00) 1 января. Эквивалент 0 0 1 1 * .
  • @monthly — запускать заданное задание один раз в месяц в полночь первого дня месяца. Эквивалент 0 0 1 * * .
  • @weekly — запускать задание раз в неделю в полночь воскресенья. Эквивалент 0 0 * * 0 .
  • @daily — запускать задание один раз в день в полночь. Эквивалент 0 0 * * * .
  • @hourly — запускать заданную задачу один раз в час в начале часа. Эквивалент 0 * * * *.
  • @reboot — Запустить указанное задание при запуске системы (время загрузки).
Читайте также:  Что такое сетевое окружение windows

Команда Crontab

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

  • crontab -e — отредактировать файл crontab или создать его, если он еще не существует.
  • crontab -l — Показать содержимое файла crontab.
  • crontab -r — удалить текущий файл crontab.
  • crontab -i — Удалить текущий файл crontab с запросом перед удалением.
  • crontab -u — Изменить другой файл crontab. Требуются права системного администратора.

Команда crontab открывает файл crontab с помощью редактора, указанного в переменных окружения VISUAL или EDITOR .

Переменные Crontab

Демон cron автоматически устанавливает несколько переменных окружения.

  • Путь по умолчанию установлен в PATH=/usr/bin:/bin . Если вызываемая вами команда присутствует в указанном пути cron, вы можете использовать абсолютный путь к команде или изменить переменную cron $PATH . Вы не можете неявно добавить :$PATH , как если бы вы использовали обычный скрипт.
  • Оболочка по умолчанию установлена в /bin/sh . Вы можете установить другую оболочку, изменив переменную SHELL .
  • Cron вызывает команду из домашнего каталога пользователя. Переменная HOME может быть переопределена настройками в crontab.
  • Уведомление по электронной почте отправляется владельцу crontab. Чтобы перезаписать поведение по умолчанию, вы можете использовать переменную среды MAILTO со списком (через запятую) всех адресов электронной почты, которые вы хотите получать по электронной почте. Если MAILTO определено, но пусто (MAILTO = «») , письмо не отправляется.

Ограничения Crontab

Системные администраторы могут контролировать, какие пользователи имеют доступ к команде crontab , используя файлы /etc/cron.deny и /etc/cron.allow . Файлы состоят из списка имен пользователей, по одному имени пользователя в строке.

По умолчанию только файл /etc/cron.deny существует и является пустым, что означает, что все пользователи могут использовать команду crontab . Если вы хотите запретить доступ к командам crontab конкретному пользователю, добавьте имя пользователя в этот файл.

Если файл /etc/cron.allow существует, только пользователи, перечисленные в этом файле, могут использовать команду crontab . Если ни один файл не существует, только пользователи с правами администратора могут использовать команду crontab .

Примеры Cron заданий

Ниже приведены некоторые примеры заданий cron, которые покажут вам, как запланировать выполнение задачи на разные периоды времени.

  • Запускать команду в 15:00 каждый день с понедельника по пятницу:
  • Запускать скрипт каждые 5 минут и перенаправлять стандартный вывод на dev null , на указанный адрес электронной почты будет отправлена только стандартная ошибка:
  • Выполнять две команды каждый понедельник в 3 часа дня (используйте оператор && между командами):
  • Запускать PHP-скрипт каждые 2 минуты и записывать результат в файл:
  • Запускать сценарий каждый день, каждый час, каждый час, с 8:00 до 16:00:
  • Запускать сценарий в первый понедельник каждого месяца в 7 часов утра.
  • Запускать сценарий в 21:15, 1 и 15 числа каждого месяца:
  • Установить пользовательские переменные HOME , PATH , SHELL и MAILTO и запускать команду каждую минуту.

Создание сайта на WordPress

Что как и почему в WordPress

Задания Cron на выполнение php-скриптов

Задания Cron

Cron — это демон (программа, которая постоянно работает в системе в фоновом режиме), представляющий собой планировщик задач в UNIX-подобных операционных системах (включая сервер Apache), который в определенное время автоматически выполняет задания. Пример задания — копирование базы данных в определенное место на сайте (создание резервной копии).

Каждый пользователь системы может добавлять свои задания, указывая, в какое время и какие скрипты нужно выполнять от его имени. Задания могут выполняться, например, раз в день, раз в месяц, раз в год.. На вашем хостинге могут действовать ограничения на общее количество заданий и на то, как часто может выполняться задание (Например, не чаще 1 раза в 10 минут и не более 10 cron-заданий).

Задание (таблица crontab) включает 6 разделов, разделяемых пробелами или табуляцией.

Первые пять разделов задают время выполнения скрипта:
минуты: 0-59
часы: 0-23
день месяца: 1-31
месяц: 1-12
день недели: 0-7 (0 и 7 — воскресенье)
* — диапазон с первого до последнего.

команда задает скрипт, который нужно выполнять, например, скрипт на Perl или на php. Если команда передает текст в стандартный вывод, этот текст отправляется на e-mail пользователя, но стандартный вывод можно перенаправить в /dev/null:

Читайте также:  Qemu как установить windows

Примеры задания времени выполнения скрипта:
0 22 * * * — каждый день в 22:00
0 0 1 * * — раз в месяц
0,30 10-22 * * * — каждые полчаса между 10:00 и 22:00
*/10 * * * * — каждые 10 минут

Права доступа

На скрипт рекомендуется выставить права доступа 755 (права на исполнение).

Добавление задания Cron в ISPmanager

В ISPmanager параметры выполнения для крона задаются в отдельных полях формы.

Войдите в Главное — Планировщик и нажмите кнопку «Создать«. В появившейся форме задайте Команду и Период (периодичность выполнения), а также выберите опцию Не отправлять отчёт по e-mail.

Команда — это путь до интерпретатора (у меня сработало просто php), пробел и полный путь до скрипта:

*** Полный путь до скрипта включает путь к корневой директории сервера, который можно узнать, выполнив в браузере:

Период — периодичность выполнения задания можно выбрать из списка (базовый режим):
каждый час — выполнение в 0 минут каждого часа.
каждый день — выполнение ежедневно ровно в 00:00.
раз в неделю — выполнение каждое воскресенье ровно в 00:00.
раз в месяц — выполнение первого числа каждого месяца ровно в 00:00.
раз в год — выполнение каждый год 1 января ровно в 00:00.

или задать вручную (экспертный режим)

Добавление задания Cron в cPanel

В cPanel войдите в «Дополнительно», «Задания Cron» и заполните форму добавления задания.

Особенности выполнения php-скрипта в задании Cron

В выполняемом php-скрипте не должны использоваться переменные окружения. Например, адреса следует прописывать явно. Дело в том, что при выполнении cron-задания в php-скрипте недоступны серверные переменные (например, $_SERVER, $_GET), т.к. веб-сервер Apache не участвует в работе демона cron и не заполняет переменные окружения.

В команде необходимо указать путь к php (может отличаться для разных хостингов), например, /usr/bin/php, затем пробел и полный путь к файлу скрипта:

Пример Cron-задания для выполнения php-скрипта один раз в день (0 0 * * * — задает периодичность)

Задания Cron на выполнение php-скриптов : 14 комментариев

А как подавить отсылку на емайл сообщений крона?

команда >/dev/null 2>&1

Доброго времени.
У вас отличный блог, странно, почему я на него раньше не попадал.
Столкнулся, не в первый раз уже, с работой cron в вордпресс.
В свое время, вырубил его функционал в wp-config, потому что при обращении к wp-cron.php с хостинга возвращает 404.
Покурив интернет, выяснил, что это происходит когда в hosts на хостинге прописано 127.0.0.1 localhost, а wordpress-у нужно, в данном случае, чтоб был прописан адрес моего блога. Хостинг виртуальный, провайдер что-либо делать отказался. Ну я отключил. А сейчас решил поставить wp super cache, но сия зверюга натыкаясь на 404 ставиться не хочет.
Не подскажете, где бы его чего почитать более-менее толковое про этот чертов функционал? Второй раз за месяц по интернету прохожусь с этими вопросами, но такое ощущение, что это или заговор, или я не там ищу.
Хочу отпинать или вордпресс, чтоб дергался крон сервера хостинга, либо научить кэширующий плагин работать с внешним кроном.
Благодарю.

Спасибо пост реально очень помог

Скрипты могут не работать из-за указания расширения в названии файла

А можно «для особо одаренных» или, вернее, для вообще ничего не знающих в php подробнее написать, куда вставить строку-php или что там еще.
Задание в Cron — это логически понятно — выставить время, а вот мне например, надо выставить задание для создания backup сайта. Какую команду и куда ее вписать?

Уууу полегчало, оказывается что так просто 🙂

Описано легко и понятно. Только у Вас получается, что в неделе 8 дней (от 0 до 7)
Поправьте, плз, а то чайники запутаются. 🙂

День недели может быть задан числом от 0 до 7, причем 0 и 7 соответствуют воскресенью.

Здравствуйте, у меня такой вопрос, куда вписывать путь к файлу PHP? хотелось бы по подробнее.

Можно ли отправить резервную копию на e-mail? (именно копию, а не отчёт). Если да, то как?

Если это статья для новичков, то совершенно не понятно куда писать команды этому крону типа:
0 0 * * * /usr/bin/php /home/логин/public_html/myscript.php

Просто в консоли вводишь последовательно команды.
echo «0 0 * * * /usr/bin/php /home/логин/public_html/myscript.php» | crontab
service cron reload

>> т.к. веб-сервер Apache не участвует в работе
A Nginx участвует?
А IIS?

Оцените статью