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 для определенного времени каждый день.