私が所有しているもの
サーバーが2つあります。彼らに電話sen.der
してくださいrecei.ver
。
送信者はファイルを生成します。これらのファイルのサイズは20Kbから30Gbです。
ファイル作成後にファイルサイズを確認してrecei.ver
10Mb未満の場合は、SFTP経由でファイルを送信するスクリプトを作成しました。それ以外の場合、10Mbより大きい場合は、10Mbチャンクに分割してrecei.ver
SFTP経由で送信します。
転送時間は明らかにファイルサイズと回線速度によって決まります。この回線速度は100Kbpsほど低く、理論的には最大のファイルを転送するのに最大11時間かかることがあります。
私は必要です
私が望むのは、recei.ver
ファイルを1つの大きなファイルに自動的に再構成することです(そして、解凍、通知メールの送信など、いくつかの追加タスクを実行することです)。
私は何ですか?できるする
inotifywait
これらのオプションを使用して-m
表示し、作成中のファイルのファイルサイズを確認し、生成された最後のファイルが10,485,760バイト未満の場合を分類できます。
その後、このチャンクをキャプチャしてテストtarを使用できます。tar tf <filename>; echo $?
もっと良い方法がありますか?
うまくいくかもしれませんが…エレガントに見えません。もっと良い方法がありますか?
ベストアンサー1
ファイルサイズの一部を暗黙的な終了マークとして使用することは脆弱です。より良いアプローチは、個々の部品を最初に送信し、部品リストを一覧表示する制御ファイルを送信し(送信問題を検出するためにsha256チェックサムを使用)、受信プログラムが再組み立てを開始する前にすべての部品が送信されたことを確認できるようにするです。