以下のスクリプトは、デーモン化され、さまざまなユーザーによって数千回ではないにしても数百回トリガーされます。
このスクリプトはinotifywait
、アップロード用のフォルダーを監視し、アップロードされたファイルを、以前のアップロードをローテーション (バックアップ/移動) した後、プレゼンテーション用の最終的な宛先に移動するために使用します。コードは、その場で作成されるさまざまなアップロード フォルダーに対して実行されます。
#!/bin/bash
db="$VAR1"/path/to/upload/folder/
s3="$VAR2"/path/to/remote/folder
inotifywait -m -r -e attrib "$db" |
while read dir ev file;
do
for dirnum in $(cd "$s3"; ls */*.png | sed 's%/.*%%' | sort -nr)
do
next=$(($dirnum + 1));
mv "$s3/$dirnum/post$dirnum.png" "$s3/$next/post$next.png";
done
mv "$db"/"$file" "$s3"/1/post1.png
done
最適化するにはどうすればよいですか?それとも、より高速なプログラミング言語に書き直す必要がありますか? また、一定の負荷の下でスクリプトをテストするにはどうすればよいですか?