bashのドキュメント、この質問、およびこの質問を確認した後、bash内のファイルにアトミック書き込み(追加)操作を実行する方法がまだわかりません。複数のインスタンスで実行されるスクリプトがあり、ある時点でファイルにデータを書き込む必要があります:
echo "$RESULT" >> `pwd`/$TEMP_DIR/$OUT_FILE
同時に実行されているすべてのスクリプトからそのファイルへのすべての書き込み操作をアトミックにする(あるインスタンスのデータが別のインスタンスのデータと重複しないようにする)にはどうすればよいですか?
承認された回答:
flock
を使用する必要があるようです man(http://linux.die.net/man/1/flock)の例のように
(
flock -x 200
# Put here your commands that must do some writes atomically
) 200>/var/lock/mylockfile
そして、アトミックでなければならないすべてのコマンドを()に入れます。