2012-04-07 11 views
0

を使用して動的にcronを挿入マイres_time.phpファイルは行私は手動で./cront1.sh 3を入力したときcront1.shカントPHP

!/bin/bash 
echo " 00 $1 * * * /var/www/html/new12345/shell_call.php >> /var/www/html/w.txt" | crontab - 

である私はcrontabの

のエントリを見ることができます

$r = $shell_exec("/var/www/html/new12345/cront1.sh $n"); 

を持っていますしかし、php内でbashを使用すると、いくつかの問題が発生しています。その行自体は呼び出されません.HELP!

権限は、各ファイルに満ちている。これは本当に物事を行くための正しい方法ではありません

+0

CLIまたはブラウザでPHPスクリプトが呼び出されていますか?後者の場合、Webサーバーユーザーは 'cront1.sh'を実行する権限を持っていますか? – cmbuckley

+0

なしbrowser..ooohで、その後のu Apacheがcrontabのは、Apacheのユーザーに対しても、それはcrontabの許可だことを確認しますことを心に留めて:-)うんcron1.sh –

+0

を実行するためのアクセス許可とクマを与えられるべきである意味します。 – cmbuckley

答えて

0

をreffered。一般的に、OSレベルのcronを可能な限り少なくしたいとします。ほとんどのフレームワークでは、数分ごとに呼ばれる単一のcronスクリプトを用意し、他のタスクが何をする必要があるかを決定し、実行します。あなたは、何かのcrontab内の単一のエントリを設定したい

ので:基本的なレベルで

*/3 * * * * /var/www/html/my_site/cron.php 

を、あなたは現在のタイムスタンプにモジュロ演算を実行することにより、cron.phpに何をすべきかを考え出すことができます、例えば

if (time() % (60*60)) { 
    // runs every hour, on the hour 
} 

if (time() % ((60*60)/2)) { 
    // runs at xx:00 and xx:30 
} 


if (time() % (60*5)) { 
    // runs every five minutes 
    // although it'll actually only run every 15 mins, because cron.php is called every 3 mins! 
} 
+0

しかし、私はこれを定数ではないユーザーの希望に応じてスケジュールする必要があります...他の考えですか? –

+0

かなり定期的に軽量なPHP/bashスクリプトを実行するようにcronを設定する方がよい、とそのスクリプトを持っているかもしれませんが(例えば、データベースまたは類似をチェックすることによって)、ユーザー固有のチェックを行います。 – cmbuckley

関連する問題