Використання crontab для виконання сценарію щохвилини, а інший кожні 24 години [закрито]


316

Мені потрібен синтаксис crontab, який повинен виконувати певний скрипт PHP /var/www/html/a.phpщохвилини. Страта кожної хвилини повинна починатися о 00:00. Інше завдання, яке повинно виконувати сценарій о 00:00 /var/www/html/reset.php(раз на 24 години).

Відповіді:


586

щохвилини:

* * * * * /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 , і цей зручний інструмент для створення завдання cronx: http://www.htmlbasix.com/crontab.shtml


3
Шановний Ян! Чудова відповідь. Як щодо запуску крона кожні 30 секунд? Це так? * * * * * / 30 / шлях / до / php /var/www/html/a.php?
flaab

26
На жаль, ви не можете виконувати завдання cron частіше, ніж кожну хвилину. Для цього вам доведеться використовувати щось інше.
Ян Ганчич

9
Ян Ханчич, ти можеш це зробити. Вам просто потрібно використовувати простий трюк, описаний тут: stackoverflow.com/a/1034304/1580615
Рубен

Це нормальна практика виконувати .php скрипт щохвилини за допомогою cron? Чи може це знизити продуктивність сервера? Чи є інші погані побічні ефекти?
Андрій

@flaab кожні 30 секунд ви можете спробувати щось подібне: - * * * * * curl --silent URL> / dev / null 2> & 1 * * * * * сон 30; curl --silent URL> / dev / null 2> & 1
Shashank Shah

375

Це формат / 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 із шебангу, щоб ваша оболонка знала, який інтерпретатор використовувати:

#!/usr/bin/php
<?php
// your code here

42
Це формат /etc/crontab, який є системним файлом crontab. Користувач кронтаб має інший формат, який не включає в себе поле імені користувача, оскільки вона працює як користувач , який представив його. Якщо ви хочете виконати завдання cron як некористувацький користувач, вам слід скористатися crontabкомандою, щоб подати його (і не турбуватися про те, де зберігається crontab). Не бідайте, /etc/crontabякщо вам справді не потрібно.
Кіт Томпсон

гмм ... ні, все ще не працює
Мадео
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.