2011-10-24 8 views
0

フルタイム(:00)で1日数回実行するcronジョブがあります。この間にPHPスクリプトを実行するにはどうしたらよいですか?他の人が私のスクリプトを実行できるようにしたくありません。ここに私が考えたものがあります:特定の時間にPHPファイルでのみcronを実行する方法を教えてください

if (date('i', time()) > 2 || date('i', time()) < 58) { 
    die; 
} 

より良い、より安全な方法はありますか?

+1

"Someone else"?誰のように?あなたのスクリプトがcronによってのみ実行されるようにされている場合は、Webからアクセスできないようにしてください(下の@jeroenのように)。これにより、サーバーに直接アクセスできない人はいません。これにより、サーバーに直接アクセスできる人、知っていて信頼できる人(またはサーバーに直接アクセスしてはいけない人)が残されます。 –

+0

他の人がスクリプトを実行できる場合は、そのスクリプトを読むことができます。それは彼らがそれをコピーして、あなたの時間制限を取り除き、それをとにかく走らせることができるということです。 –

答えて

4

あなたのWebディレクトリの外にPHPスクリプトを置くと、you/cronだけがそれを実行することができ、誰も実行できません。

#!/usr/local/bin/php  /* depends on your server and configuration */ 
+0

スクリプトがウェブからアクセス可能な場所にあると思われるのはなぜですか?シェル内のサーバーにアクセスしている他のユーザーがスクリプトを実行するのを防ぐにはどうすればよいですか? – ghbarratt

+0

@ghbarrattちょっと推測しますが、それは論理的です。さもなければ、OPは自分のホームディレクトリに移動するだけで、問題は既に解決されるでしょう。 – jeroen

0

cronジョブは、通常、rootユーザーとして実行されています

は例があなたのPHPスクリプトの最初の行として、このようなものを追加するように、cronでPHPスクリプトを実行するためのさまざまな方法があります。あなただけのルートで、スクリプトの実行可能ファイルと読みを作ることができる。また、あなたはルートを使用しない場合は、特別なユーザとしてスクリプトを実行するために、crontabファイル内のコマンドを変更することができ

sudo chown root script_for_root_only.php 
sudo chmod 744 script_for_root_only.php 

...

私はあなたがウェブでアクセス可能な場所にスクリプトを持っていないと推測できます。あなたがそれをしたら、それを動かす。

関連する問題