Ubuntuサーバーの起動時に一定のループを実行するbashスクリプトを実行します。

Ubuntuサーバーの起動時に一定のループを実行するbashスクリプトを実行します。

ローカル FTP サーバーを作成中ですが、マシンの起動時に次のスクリプトを実行する必要があります。

#!/bin/bash
while [ 1 ];
do
chmod 2777 /home/ftp/folder;
chmod -R 777 /home/ftp/folder;
sleep 60;
done

これを解決する最善の方法は何でしょうか?

これを rc.local ファイルに追加しようとしましたが、サーバーが適切に起動しません。また、スクリプトの実行中に違いが生じる場合は、このスクリプトを sudo として実行する必要があります。

どのようなご助力やアイデアでもいただければ幸いです。ありがとうございます。

答え1

cronjob を使うのはどうでしょうか?

置く

#!/bin/bash
chmod 2777 /home/ftp/folder
chmod -R 777 /home/ftp/folder

スクリプト ファイルに追加して、1 分ごとに呼び出します。

sudo crontab -e

次のように呼び出します。

* * * * * /path/to/script.sh

詳細情報 - Ubuntu Wiki

答え2

  • スクリプトからループを削除します
  • スクリプトを適当なディレクトリ(例/usr/local/sbin/:)に配置します。
  • cronジョブの説明を/etc/cron.d/に配置します。例:

* * * * * myuser /usr/local/sbin/myscript

これにより、スクリプトが 1 分ごとに実行されるようになります。その後、完全に安全を確保するには、インスタンスが 1 つだけ実行されるようにする (つまり、別のインスタンスが完了するまでに 1 分以上かかる場合は実行しないようにする) 方法を追加する必要があります。これは通常、ロック ファイルを介して行われます。

関連情報