PHPスクリプトでプログラムでクローンジョブを作成する

PHPスクリプトでプログラムでクローンジョブを作成する

RaspbianがインストールされたRaspberry Piがあります。可変期間(10、20、30、40、50、または60分ごと)を必要とするクローン操作が必要です。 crontabファイルを編集せずに新しいcronジョブを作成する最も簡単な方法は次のとおりです/etc/cron.d/etc/cron.d/myCron

*/10 * * * * root /home/pi/myScript >> /home/pi/myLog.log 2>&1

所有者/権限:

-rw-r--r-- 1 root root  84 Sep  9 16:15 myCron

これで、次のようにPHPスクリプトを介してこのファイルに書き込む必要があります。

<?php
$config = $_GET["config"];
$cron = fopen('/etc/cron.d/myCron','w');
fwrite($cron,"*/".$config['interval']." * * * * root /home/pi/myScript >> /home/pi/myLog.log 2>&1")
fclose($cron);
?>

期間を変更するには

問題は、PHPがユーザーによって実行され、www-dataディレクトリ内のファイルがcron.d属しroot、権限を持っている必要があることです-rw-r--r--。それ以外の場合は動作しません。

これを達成する方法についてのアイデアはありますか?ありがとうございます!

答え1

crontab新しいファイルをインストールする方法については、crontab -オプションを参照してください。

明らかに、ルートのcrontabを更新するのに問題がありますが、sudoそうすることは許可されています。

/var/spool/cron/crontabs最終目的地の場所として使用されます/etc/cron.d

最善のセキュリティを確保するために(貴重な場合はこれが重要であるかどうかはわかりません)、最小限の権限でできるだけ多くの作業を実行し、ルートとしてスクリプトの最終実行を実行してください。

sudo許可するように設定できます。www-データ実際の更新を実行するルートとして特定のシェルスクリプトを実行するだけです。その後、最小限の権限が許可されます。つまり。ファイル生成は次のようにすることができますwww-データ

関連情報