0

私の res_time.php ファイルには行があります

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

どこcront1.shですか

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

手動で入力する./cront1.sh 3と、crontab にエントリが表示されます

ただし、php 内で bash を使用すると、いくつかの問題が発生します。行自体が呼び出されません。ヘルプ!

権限は、参照された各ファイルに対して完全です

4

1 に答える 1

0

これは物事を進める正しい方法ではありません。一般に、OS レベルの cron はできるだけ関与させないようにします。ほとんどのフレームワークでは、数分ごとに呼び出される 1 つの 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!
}
于 2012-04-07T14:55:48.887 に答える