home
を使って自分のディレクトリを外部SSDドライブにバックアップしたいと思いますrsync
。
私はアーチLinuxを使用しています。家にいるのはext4
(251G)で、取り付けられているSSDは(512G)NTFS-3G
ですfuseblk
。
正確なrsync
呼び出しは次のとおりです。
rsync -aSh --info=progress2 --delete --exclude=/me/.cache /home/me /run/media/me/Samsung_T5/
結局失敗し、これが最後の言葉でした。
218.76G 99% 25.08MB/s 2:18:36 (xfr#2093188, ir-chk=1368/2286507)
rsync: write failed on "/run/media/me/Samsung_T5/me/a_file": No space left on device (28)
それでrsync
約218G程度のデータがコピーされたというのにSSDがいっぱいでコピーを続けることができませんでした。
du
私のSSDターゲットにどれだけのデータがあるか尋ねると、rsync
466Gと出てきます。
$ du -hs /run/media/me/Samsung_T5/me
466G /run/media/me/Samsung_T5/me
これはとても奇妙です。rsync
281Gをコピーしようとしましたが、218Gをコピーしましたが、実際には466Gがコピーされたため失敗しました。
私はここで何を間違えましたか?
私はこれを知っNTFS
ていてext4
違う。しかし、私のファイルを2倍以上大きくするのに十分な違いはありますか?私が実際に持っているよりも多くのコンテンツをコピーしていますかhome
?
rsync
home
〜280GをSSDにバックアップする正しい手順は何ですかhome
?
修正する[下記のコメントありがとうございます]:
私のソースディレクトリには、多数の小さなファイルと一定量のスパースファイルがあります。たとえば、ソースに4Kファイルがあり、ターゲットに128Kファイルがあります。ソースには12K、ターゲットには128Kのスパースファイルもあります。
また、さまざまな実行可能ファイル(共有ライブラリなど)への244のハードリンクもあります。これらのハードリンクの一部は、比較的大きなファイルを指しています。たとえば、binutils
リンカ(ld
)の1つのバージョンは約7Mで、4つのハードリンクがあります。
ベストアンサー1
あなたは少し見ることができます。二重性とグラフィカルユーザーインターフェースデザビュー。増分バックアップにはtarファイルを使用し、ファイルを暗号化してオプションでリモートサーバーにバックアップするオプションもあります。
librsyncとローリングチェックサムアルゴリズムを使用して、各増分アーカイブはファイルの変更された部分のみを保存します。
ホームページにはUnix権限、シンボリックリンク、fifo、およびデバイスファイルを処理することが示されていますが、ハードリンクを保存しないでください。ハードリンクされた大容量ファイルが多い場合、これはアーカイブの最良のオプションではないかもしれませんが、より重要なことは、必要に応じてリンクを再配置できるように、どのファイルが互いにリンクされているかを個別に記録しておくことです。復元します。可能であれば、シンボリックリンクに変換することでこの問題を解決することもできます。
次のハードリンクを見つけることができます。
find /home/me -links +1 -type f -printf '%n %i %D %p\n' | sort -n
フォーマット文字列は%n
リンク番号、%i
inode番号%D
、装備ファイルが開いています%p
。パス名。同じ inode 番号とデバイスを持つ行はハードリンクです。このデバイスは、ディレクトリツリーにマウントポイントがある場合にのみ役立ちます(他のデバイスの同じinodeは同じファイルではないため)。もちろん、ツリー外のファイルへのハードリンクはrsyncを介しても処理できません。