cron работа минута до завтра
Я собираюсь вызвать вызов PHP-файла через curl в соответствии с расписанием. Я думаю о том, чтобы сценарий выполнялся каждый 23:59:59 или просто за минуту до завтрашнего дня. Какой лучший подход для этого? Совсем запутался еще в настройках cron.
Мне нужно, чтобы убедиться, что я бегу ровно за секунду до следующего дня.
4 ответов
выполнить скрипт каждый день в 23:59:00, используйте следующую конструкцию:
59 23 * * * root /path_to_file_from_root
секунды не могут быть определены с помощью Cron, но это должно сделать для вас.
чтобы выполнить скрипт в 23: 59: 59, используйте PHP sleep()
функция для задержки выполнения скрипта на 59 секунд. Я бы посоветовал 58 секунд, хотя, чтобы убедиться, что сценарий не задерживается до полуночи.
это очень просто, вы могли бы сделать его немного сложнее и запустите тесты, чтобы убедиться, что сценарий всегда запускается в 23:59:59, извлекая время и задерживая соответствующим образом. Однако в этом нет необходимости.
<?php
// Any work that the script can do without altering the database, do here
// Delay the script by 58 seconds
sleep(58);
// Carry on with the rest of the script here, database updates etc
?>
Minutes [0-59]
| Hours [0-23]
| | Days [1-31]
| | | Months [1-12]
| | | | Days of the Week [Numeric, 0-6]
| | | | |
* * * * * home/path/to/command/the_command.sh
59 23 * * * home/path/to/command/the_command.sh
начать редактирование crontab с помощью
crontab -e
или
vi /etc/cronatb
Это зависит от дистрибутива.
59 23 * * * root /path/to/your/php/file.php
обратите внимание, что столбец "root" означает имя пользователя, под которым нужно запустить задание, возможно, будет недоступен в вашей системе.
попробуйте запустить
man crontab
для более подробной информации
вы можете установить его для запуска ровно 23: 59: 00 каждый день, посмотрите на примеры put здесь. В частности, посмотрите пример no. 1, который объясняет, как точно установить cronjob для определенного времени каждый день.