PHPスクリプトファイルからcronジョブを設定したかった。shell_exec() 関数を使用してphpファイルを実行できます。しかし、cron ジョブ関連のコマンドを実行できません。$output = shell_exec("crontab -l");
このコマンドは機能していません。/usr/bin/crontab の下にある私の cron ジョブ。ファイル権限を 777 に設定し、ルート アクセスでこのコマンドを実行しています。まだ運がない。誰でも私を助けることができますか?
1 に答える
「crontal-l」コマンドは、個人のcronタブにユーザーにスケジュールされている内容を表示するだけです。現在の個人用crontabによっては、空の文字列が返される場合があります。すべてのユーザーがrootでのみ書き込み可能な、システム全体のcrontabであるファイル/ etc/crontabと混同しないでください。
私が理解したように、phpスクリプトからcrontabにジョブを追加する必要がある場合は、次のようなものを試してみてください。
$r=shell_exec('cat "30 6 * * * user my_cmd my_args" >> /etc/crontab');
たとえば、「user」として実行される「my_cmd my_args」をスケジュールするには、毎日午前6時30分に実行します。このPHPスクリプトは、彼だけが/ etc / crontabに書き込むことができるため、rootとして開始する必要があります。
注意:phpスクリプトがWebサイトから開始されるのではなく、アクセスが制限された環境からコマンドラインで開始されることを願っています。これにより、セキュリティリスクを制限できます。特に、rootとして開始するために何かを行う場合はそうです。この種のスクリプトは、システムの非常に大きな穴です。これを考慮してください。それが私のアドバイスです。
ちなみに、/ usr / bin / crontabの権限は:に戻ります。
-rwxr-sr-x 1 rootcrontab3504019déc。2010 / usr / bin / crontab(Debianシステムの例)。