2012-03-30 79 views
6

我即將通過curl按計劃觸發一個PHP文件調用。我正在考慮讓腳本在23:59:59之間執行,或者在明天輪換前一分鐘執行。任何最好的方法呢?在cron設置上還是很困惑。明天前cron工作分鐘

我需要確保我在第二天之前完全是一個第二運行。

+0

我完全同情運行

man crontab 

,cron的設置可能會相當混亂。我會在一秒內發佈一個答案:-) – 2012-03-30 08:47:03

回答

7

在每天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 

?> 
+0

這是否意味着cron將在23:59:59完全運行,但它只是在23:59可視化設置? – 2012-03-30 08:54:43

+0

@Defensor不,我在答案中沒有清楚。這將在每天23:59運行。你不能使用crontab指定秒數 – 2012-03-30 08:56:19

+0

@Defensor爲什麼你需要它來精確運行? – 2012-03-30 08:56:59

13
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 
+2

這是一個非常好的可視化 – sshow 2012-03-30 08:49:17

+0

非常棒的答案+1! – 2012-03-30 08:50:14

+0

59秒怎麼樣? – 2012-03-30 08:51:55

0

你可以將其設置爲正好23:59:00日常運行,看看例子把here。具體看例子號。 1,它解釋瞭如何在每天的特定時間設置cronjob。

1

開始的crontab編輯由

crontab -e 

vi /etc/cronatb 

這取決於發行。

59 23 * * * root /path/to/your/php/file.php 

請注意,「root」列意味着在其下啓動作業的用戶名,可能在您的系統上不可用。

嘗試更多細節

+0

+1很好解釋 – 2014-04-29 04:30:43