Использование crontab для выполнения скрипта каждую минуту и ​​еще один каждые 24 часа

Мне нужен синтаксис crontab, который должен запускать определенный PHP-скрипт /var/www/html/a.php каждую минуту. Исполнение каждую минуту должно начинаться в 00:00. Другая задача, которая должна выполнять сценарий в 00:00 /var/www/html/reset.php (один раз в 24 часа).


person Michael    schedule 22.03.2011    source источник


Ответы (2)


каждую минуту:

* * * * * /path/to/php /var/www/html/a.php

каждые 24 часа (каждую полночь):

0 0 * * * /path/to/php /var/www/html/reset.php

См. Эту ссылку, чтобы узнать, как работает crontab: http://adminschoice.com/crontab-quick-reference , и этот удобный инструмент для создания cron jobx: http://www.htmlbasix.com/crontab.shtml

person Jan Hančič    schedule 22.03.2011
comment
Дорогой Ян! Отличный ответ. Как насчет запуска cron каждые 30 секунд? Это так? * * * * * / 30 / путь / к / php /var/www/html/a.php? - person flaab; 26.11.2012
comment
К сожалению, вы не можете запускать задания cron чаще, чем каждую минуту. Для этого вам придется использовать что-нибудь еще. - person Jan Hančič; 26.11.2012
comment
Является ли обычной практикой выполнение скрипта .php каждую минуту с помощью cron? Может ли это снизить производительность сервера? Есть ли другие побочные эффекты? - person Andrew; 19.02.2016
comment
@flaab каждые 30 секунд вы можете попробовать что-то вроде этого: - * * * * * curl --silent URL ›/ dev / null 2› & 1 * * * * * sleep 30; curl - беззвучный URL ›/ dev / null 2› & 1 - person Shashank Shah; 28.11.2016

Это формат / etc / crontab:

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

Я рекомендую скопировать и вставить его в начало файла crontab, чтобы у вас всегда была под рукой ссылка. Системы RedHat настроены таким образом по умолчанию.

Чтобы запускать что-то каждую минуту:

* * * * * username /var/www/html/a.php

Чтобы запускать что-то в полночь каждый день:

0 0 * * * username /var/www/html/reset.php

Вы можете включить / usr / bin / php в команду для запуска или сделать скрипты php непосредственно исполняемыми:

chmod +x file.php

Запустите свой php файл с помощью shebang, чтобы ваша оболочка знала, какой интерпретатор использовать:

#!/usr/bin/php
<?php
// your code here
person Greg    schedule 22.03.2011
comment
Это формат /etc/crontab, который является системным файлом crontab. user crontab имеет другой формат, который не включает поле имени пользователя, поскольку он запускается от имени пользователя, который его отправил. Если вы хотите запустить задание cron от имени пользователя без полномочий root, вы должны использовать команду crontab для его отправки (и не беспокоиться о том, где хранится crontab). Не возитесь с /etc/crontab, если в этом нет необходимости. - person Keith Thompson; 18.07.2013
comment
ммм ... нет, все еще не работает - person Madeo; 19.02.2020