由于 rsync 设备错误没有剩余空间,备份过程需要很长时间

Ram*_*esh 1 backup rsync

我试图理解为什么其中一台服务器的备份过程需要这么长时间并且没有正确复制数据。

这是外部硬盘分区的大小。

df -h /dev/sdb1
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1             985G  362G  573G  39% /media/backup
Run Code Online (Sandbox Code Playgroud)

我试图复制的文件夹小于外部硬盘分区的大小。

df -h /dev/sda4
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda4             3.4T  867G  2.4T  27% /mounts
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好。差不多一周前我开始了备份过程,但它仍然没有完成。我意识到这可能是 USB 端口速度的问题,但我错了。

我还怀疑它可能是导致错误的文件系统损坏。我想fsck/dev/sda4文件系统上运行。但是当我检查一些脚本输出时,我读到了一些错误消息,

rsync: mkstemp "/media/backup/2014-06-18_09-36/mounts/ no space left on device (28)
Run Code Online (Sandbox Code Playgroud)

这里,我读到 5% 的磁盘空间将分配给根文件系统。我不明白这是否与我的问题有关。另外,从这里,我读到 inode 大小不能大于 2 GB。我相信这应该是我调查的事情。但我不确定这是否是问题所在。我将不胜感激更多指向正确方向的指针。

编辑:

df -i命令的输出如下。

df -i /dev/sdb1
/dev/sdb1            65544192 65279823  264369  100% /media/backup
df -i /dev/sda4
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda4            229957632 171244050 58713582   75% /mounts
Run Code Online (Sandbox Code Playgroud)

der*_*ert 5

您的备份驱动器上的 inode 已用完。这就是您看到的空间不足错误。

每个文件(基本上)采用一个 inode。不幸的是,对于大多数文件系统,除了 mkfs 之外,没有办法添加更多的 inode。

示例:使用 ext4,您可以直接使用-N选项选择创建的 inode 数量(在 mkfs 时间),或者使用-i. 各种使用类型(-T主要是不同的 inode 比率)。