Как написать автоматически исполняемый скрипт на php?

#php #cron #executable #crontab

#php #исполняемый #cron

Вопрос:

Из основы php я знаю, что в php должно быть какое-то действие / запрос для выполнения, поэтому я немного запутался в том, как это сделать. Я знаю, что это можно сделать, но не знаю как.

Я хочу написать php-скрипт, который будет запускаться на сервере каждые 6 часов и обновлять информацию базы данных из api.

Подробная информация:

Сервер, на котором я сейчас работаю, находится в Linux. Но я хочу знать, как я могу это сделать как в Linux, так и в Windows.

Обновить:

Cron не находит мой скрипт. Я не знаю, в чем проблема. Я использовал эту команду в своей cpanel

0 */6 * * * php public_html/path_to_dir/file_to_run.php

Я настроил cron, чтобы cPanel отправила мне электронное письмо. В электронном письме, которое я получаю, отображается какая-то ошибка.

/bin/sh: 0: command not found

С нетерпением жду вашей помощи.

Комментарии:

1. Рассматривали ли вы возможность использования chron jobs для этого?

2. @Pradeep: cron. Не имеет ничего общего с греческим chronos 🙂

3. @Квентин @Фабио М. @Бобби Джек: Исправьте проблему. Пожалуйста, проверьте!

4. Вы установили php5-cli пакет? Существует ли этот файл /usr/bin/php ?

Ответ №1:

Вам нужно, чтобы что-то запускало скрипт по таймеру. Обычно это будет cron (в системах на базе UNIX, таких как Linux, OS X, BSD и т.д.) Или Windows Task Schedular (в Windows).

Комментарии:

1. При этом таймер не обязательно запускать на сервере. Если PHP-скрипт доступен через Interwebs, его может вызвать любая машина с определенным cronjob, например, через cUrl или wget.

2. Итак, мне понадобятся два типа скриптов для Windows и Linux? @Boldewyn: Не уверен, что вы имеете в виду: (Можете ли вы дать какие-либо ссылки, с которых я могу начать?

3. Нет. Один скрипт. Вам просто нужно использовать другую программу, чтобы запускать ее по таймеру. (Хотя я думаю, вы можете получить cron для Windows)

Ответ №2:

Вы можете использовать crontab для планирования процесса в Unix.

Комментарии:

1. это лучший способ сделать это — единственное, вам нужно убедиться, что ваш хост поддерживает его, и вам нужно знать, как подключиться к вашему серверу с помощью SSH (погуглите программу под названием Putty)

Ответ №3:

Я предполагаю, что вы используете S.O. на базе Linux.

  1. Установите пакет php5-cli от имени root с помощью apt-get install php5-cli (или вашего pkg manager).
  2. Напишите и протестируйте свой скрипт с помощью PHP CLI, php
    filename.php
    .
  3. Войдите в систему как выбранный пользователь и настройте crontab с помощью crontab -e
  4. Напишите строку crontab: * */6 * * * php /full-path/filename.php

/var/log/messages следует регистрировать действия crontab.

Комментарии:

1. Привет, я использую этот фрагмент кода для добавления задания corn 0 */6 * * * php /full-path/filename.php будет ли оно выполняться каждые 6 часов?

2. Исправьте проблему. Пожалуйста, проверьте!