特定のディレクトリでtarファイルを探す自動化されたプロセスを展開する必要があります(1分cronスクリプトを使用)。tarファイルが見つかった場合、適切な場所にuntarされた後、tarファイルが削除されます。
tarファイルは、SSHを介して別のサーバーからこのサーバーに自動的にコピーされます。場合によっては、tarファイルは非常に大きく、多くのファイルがあります。
予想される問題:tarファイルがサーバーにコピーされるのに1分以上かかり、cronスクリプトが1分に1回実行される場合、.tar.gzファイルが表示され、実行しようとします。 tarファイルがまだ書き込まれている途中であっても、それをuntarします。
ファイルが現在書き込まれているのか、それとも部分的なファイルだけなのかなどをテストする方法はありますか(bashコマンドを使用)?
私が考えていた1つの選択肢は、ファイルを別のファイル拡張子(など.tar.gz.part
)としてコピーし.tar.gz
、転送が完了した後に名前を変更することでした。しかし、最初にファイルがコマンドラインで完全であるかどうかを判断する方法が単純にあるかどうかを把握しようと思ったのですが...手がかりはありますか?
rsync
、転送中に一時ファイル名を使用し(デフォルト)、ファイルが完全に転送された後にのみ、実際のファイル名に名前を変更します。