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-データ。