ホームディレクトリを外部ドライブにミラーリングしようとすると、rsyncが失敗する問題があります。 rsync 呼び出しは(一般ユーザーとして)次のようになります.
rsync -avz --progress --delete-before /home /mnt/st5/
次のエラーが原因でこの操作は失敗します。
home/matt/vms/windows/10/disk.img
40,002,387,968 28% 89.32MB/s 0:17:59 rsync: [receiver] write failed on "/mnt/st5/home/matt/vms/windows/10/disk.img": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(378) [receiver=3.2.3]
rsync: [sender] write error: Broken pipe (32)
/home/matt
このエラーは、使用可能以上のスペースがあることを示すようです/mnt/st5
。しかし、私はこれが本当だとは信じていません。私のホームディレクトリのサイズは次のとおりです(ソースとターゲットは両方ともbtrfsファイルシステムです)。
matt@ryzen3950 ~/s/tools> btrfs fi du -s /home/matt
Total Exclusive Set shared Filename
783.83GiB 6.15GiB 760.30GiB /home/matt
1TBドライブを目指す:
matt@ryzen3950 ~/s/tools [11]> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sde 8:64 0 931.5G 0 disk
└─sde1 8:65 0 931.5G 0 part /mnt/st5
これに基づいて、約150GB程度の空き容量を残してrsyncを実行できると判断されます。
私はどこで間違っていますか?私のホームディレクトリは思ったより大きいですか?
答え1
--inplace
の説明に従って使用してください。このサーバーに誤った回答があります私のために動作します。 rsyncが失敗したファイルサイズdisk.img
は130Gでした。これは問題に関するヒントを提供すると思います。私が理解したように、rsyncはターゲットにファイルのコピーを作成し、コピーが完了した後に既存のバージョンを置き換えます。つまり、2つのファイルのコピーがターゲットに同時に存在する可能性があるため、大容量ファイルをコピーするとスペースの問題が発生する可能性があります。--inplace
コピーが最初に作成されないように動作を変更します。
新しい完全なコマンドは次のとおりです。
rsync -avz --progress --delete-before --inplace /home /mnt/st5/