1つのフォルダXからいくつかのファイル(100 kbs /ファイル)をコピーする必要があります。その後、フォルダではなくファイルを削除する必要があります。今までは簡単ですが、フォルダXはファイルをほぼ連続的に受信します。ファイルが連続して来るので、スクリプトが最初に5つのファイルをXにコピーし、次に8をYにコピーして10を削除するケースが考えられます。Bash |複数のフォルダにファイルをコピーしてスクリプトを削除する
私は2000個のファイルをテストし、すべてがうまくいった。しかし、私は100%確実にファイルを失うことはありません。
は、これが私のスクリプトです:
cp -R -v /$RootPath/MAPADMIN/$Client/Inbox/* /$RootPath/$Client/Inbox/ >> log.txt
cp -R -v /$RootPath/MAPADMIN/$Client/Inbox/* /$RootPath/Backup/$Client/Inbox >> log.txt
find /$RootPath/MAPADMIN/$Client/Inbox/ -maxdepth 2 -type f -delete >> log.txt
このスクリプトは、私の状況に最適ですが、私は0%失われたファイルを持っていることは100%を確認する必要があります。 このようなものをテストした人がいるか、時間が長いか、それを改善するのに役立つ人がいますか?
ありがとうございました!
コピー中にソースファイルも変更される可能性があります。ソースファイルをループし、各繰り返しで現在のファイルのmd5sumを計算し、2つのコピー先フォルダにコピーしてチェックしますそのmd5sumは変更されなかった。そうでない場合は、ソースファイルを削除してください。削除した場合は、2つのコピーを削除しますが、コピー元は削除しないでください。それはあなたの問題を解決するだろうか? –