2012-03-30 8 views
6

私は、予定通りにcurlでPHPファイルへの呼び出しを開始しようとしています。私はスクリプトが毎月実行されることを考えています23:59:59または明日が始まる前の1分です。このための最良のアプローチ?まだcron設定でかなり混乱しています。明日の前のcronジョブの分

私は次の日の前に正確に1秒で動作するようにする必要があります。

+0

ため

man crontab 

を実行してみてください。私は秒で答えを投稿します:-) –

答えて

7

次を使用し、23時59分00秒で毎日スクリプトを実行するには:

59 23 * * * root /path_to_file_from_root 

秒はクロンを使用して定義することはできませんが、これはあなたのために行う必要があります。

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に設定されていますか? –

+0

@Defensorいいえ、私は私の答えではっきりしませんでした。これは毎日23:59に実行されます。 crontabを使用して秒を指定することはできません –

+0

@Defensorなぜそれを正確に実行する必要がありますか? –

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

+0

ファンタスティックな答え+1! –

+0

どのように59秒ですか? –

0

あなたは、正確に23時59分00秒毎日実行するように設定する例を見てみることができますがhereを置きます。特に例を見てください。 1、どのように毎日の特定の時間のcronjobを設定する方法を正確に説明します。

crontab -e 

または

vi /etc/cronatb 

によってによって

1

スタートcrontabの編集これは、ディストリビューションに依存します。

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

「ルート」列は、ジョブを開始するユーザーの名前を意味します。ご使用のシステムでは使用できない可能性があります。

は、私は完全にcronの設定は非常に混乱することができ、共感詳細

+0

+1きれいに説明しました –