回答:
オプションには、宛先ドライブを単一ボリューム(RAID、LVM、btrfs ...)として設定するか、3TBドライブ上のデータのサブセットで2つのrsyncコマンドを実行することが含まれます。前者のオプションはジョブを単純にします(ターゲットは1つだけです)が、データにアクセスするには両方のドライブを接続する必要があるという欠点があります。後者は、サイズが2TB以下のフォルダーのセットを識別する必要があるが、各ターゲットドライブのデータに個別にアクセスできるため、もう少し努力が必要です。フォルダーのセットが3TBドライブのルートにあるいくつかのフォルダーよりも複雑な場合、rsyncコマンドを作成する最良の方法は、おそらくrsyncの--exclude-from
オプションを使用することです。
du
上記のコマンドと同じ形式を使用できます。aからnまでで始まるすべてのものに一致させるには、を使用します/[a-nA-N]
。その形式のディレクトリのみを照合するには、それを作成し/[a-nA-N]/
ます。先行する/は、転送のルートでのみ一致するようにし、サブフォルダーが誤って除外されないようにします。除外ファイルでは引用符は必要ありません(を使用--exclude-from
)が--exclude=
、シェルがrsync自体ではなくパターンの解釈を停止するために使用する場合は、単一引用符が必要です。
1)最も簡単な方法:
3TBのデータが2TB未満のディレクトリにある場合、単純に2つのrsyncコマンドを使用します。
例えば
3TB ---1½TBのFolder1-> rsync ---> 2TBドライブ 1½TBのFolder1-> rsync ---> 2TBドライブ
2)別の方法:
または、両方の2TBドライブを単一のボリュームとしてマウントします。たとえば、リニアモードまたはストライプまたはストレージスペース。(リニアモードは、両方のドライブをRAID0の形式で連結します。ストライプは、それらへの書き込みを交互に行います。)
3)代替案:
または、2番目の2TBドライブを最初のドライブのボリューム内のフォルダーにマウントします。
du -c [a-nA-N]*
これを行います(名前がaからnまたはAからNで始まる現在のディレクトリ内のすべてのファイルとフォルダの合計サイズを報告します-他のフォルダの場合はを使用します/path/to/folder/[a-nA-N]*
)。
前の回答は良いですが、ここでもう少し詳しく説明します。1)2台のドライブを別々に使用する(煩わしいが時々必要になる)
df -h
新しいドライブで使用可能なサイズを確認するために使用しますdu
コマンドを使用して、どのドライブに何が入るかを判断します。最も簡単で、おそらくアルファベット順になりますdu -ch -d0
これにより、最上位のフォルダーごとにスペースが表示されます。-d0
表示する方法の深さです。に変更し-d1
て、トップレベルのフォルダを表示し、次にサブレベルのフォルダスペースを表示します。du -ch -d0 [0-9a-tA-T]*/
これにより、0-9またはatまたはATに最初の文字が一致する最上位フォルダーにのみ一致する最上位フォルダーのスペースが表示されます。スペースの要件に最適な文字を見つけてください。--exclude
コマンドで反対を使用します。この場合、私はを使用しますrsync --dry-run -av --exclude '/[u-zU-Z]*/' source destination
。--dry-run
それがよさそうであれば削除します。主要なこと/
は、最上位フォルダーのみを示すことです。0-9がなくなっていることに注意してください。これはすべて一致させるためです。また、検索に使用du
した反対の文字を照合しています。2)レイドはとして駆動するraid0
とmdadm
。次に、通常のrsyncコマンドを実行します。これらのドライブが一緒にいる必要があり、分離された場合、データが失われることを知ってください。
A*
するの'A*'
ですか?このコマンドでは大文字と小文字が区別されますか?