
バックアップのために、SAN(オフボード)にマウントされているLinux o/saディレクトリを外部ストレージに移動する予定です。ディレクトリのサイズは です14TB
。
rsync を使用してファイルを移動した経験はありますが、今のような大きなサイズのディレクトリ/ファイルでこれを行ったことはありません。
ディレクトリは年/月/日/時間の階層で配置され、分析用の生のログをサポートします。
問題
上記のとおり、リソース制限のため、14TB 全体を外部/バックアップ ストレージ スペースに移動することはできません。現在、バックアップ スペースは最大 8 TB です。rsync に、指定されたサイズ (つまり TB のみ) のファイルのみをコピーするように指示できるコマンドまたはスイッチ/パラメーターはありますか。
注記 ファイルの性質についてはあまり気にしませんが、特定のサイズを超えるデータは移動したくないのです。
答え1
制限を設けて、一定量のバイトをコピーした時点でrsyncを停止させることはできません。通常通り実行できます。
rsync -a /src/ /dest
/destがいっぱいになるとエラーで止まってしまいます
rsync: write failed on "...": No space left on device (28)
スクリプトを使って何かできるかもしれない
find /src -printf "%p %s\n" >filelist_size
次に、awk などを使用して読み取り、ファイル サイズの合計がしきい値を下回る場合にfilelist_size
ファイル名を出力します。filelist
その後、rsync への引数を使用できますfiles-from=filelist
。
これを Python で書く方が簡単かもしれません。