Лучше всего использовать cron.Это довольно просто, хотя поначалу это может показаться пугающим:
Шаг 1. Создайте скрипт, который будет запускать cron
Например, поместите его в <your-app-root>/cron.php
:
<?php
$CRON_KEY = "some-random-value-here";
if ($_GET['key'] != $CRON_KEY) {
header(“HTTP/1.0 403 Forbidden”);
echo "You have no rights to access this page.";
exit();
}
// Your code here
Шаг 2 - Добавить запись crontab
Чтобы автоматически выполнить сценарий cron.php
, вы можете добавить строку, подобную этой, к /etc/crontab
:
## This will run each day at 2:30 AM
30 2 * * * www-data wget -O - -q http://yourdomain.com/cron.php?key=some-random-value-here &> /tmp/my-app-cron.log
..где some-random-value-here
должно соответствовать случайному значению, помещенному в скрипт PHP.Это функция безопасности, которая запрещает кому-либо запускать ваш код cron.
Описание строки Crontab
Первые пять частей строки crontab: минуты, часы, день месяца, месяц, деньнедели.
Вы также можете использовать диапазоны, например, для запуска сценария каждый день в 5, 7, 8, 12, 13, 14, 15, 20, вы можете использовать это:
0 5-8,12-15,20 * * * ...
Вы также можете использовать «шаги», например, для запуска каждые 5 минут (рекомендуется для повторяющихся заданий, таких как задачи индексирования / очистки и т. Д.):
*/5 * * * * ...
Шестым аргументом является пользователь, который будетиспользоваться для выполнения команды.Вы можете использовать любого пользователя, которого вы хотите, www-data, никто, ваш пользователь и т. Д. Лучше не использовать root здесь, если это действительно не нужно по какой-то причине.
Оставшаяся часть строки - этокоманда, которая будет запущена в запланированное время.
Часть &> /tmp/my-app-cron.log
сделает все выходные данные вашего последнего выполнения cron.php для хранения внутри /tmp/my-app-cron.log
.
Подробнее ...
Для получения дополнительной информации об использовании cron вы можете обратиться к crontab(5)
:
$ man 5 crontab