Unixでは、ファイルが作成されるとすぐにコピーする方法はありますか?ファイルが異なる時間に作成される場所があります。シェルスクリプトを使用してUnixの他の場所にファイルを自動的にコピーするにはどうすればよいですか?
答え1
inotifywait -e close_write --format "%f" --monitor . |
while IFS= read -r line
do
#cp "$line" destination/ #this would not replicate directories
tar cf - "$line" | tar -C destination/ xf - #this should replicate directories
done
ディレクトリ(現在のディレクトリで使用.
)のファイル数がinotify監視のシステム制限(coteyrが述べたfs.inotify.max_user_watches)を超えない限り、この問題を解決する必要があります。
答え2
シェルスクリプトのみを使用してファイルを生成すると、実際にそのファイルをコピーすることはできません。私は3つの解決策を考えました。
rsync対cron - シンプルで標準的で簡単です。時々(1時間に1回)ディレクトリからrsyncを実行します。変更の量に応じて、巨大な構造を数秒で同期させることができます。
グルスターまたは同様です。必要に応じて。
ただシンボリックリンクを使用してください。