rsync:写入失败 - 设备上没有剩余空间(28)

rsync:写入失败 - 设备上没有剩余空间(28)

我想要将一个文件夹从一台服务器 rsync 到另一台服务器。

但是rsync同步失败:

$ rsync -zr --compress-level=9 --delete /var/www/mywebsite/current/web/js [email protected]:/srv/data2_http
rsync: write failed on "/srv/data2_http/js/8814c77.js": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (21747 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]

但我有足够的空间!

$ du -h /var/www/mywebsite/current/web/js
2.4M    /var/www/mywebsite/current/web/js


df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          5.0G  3.0G  1.8G  64% /
/dev/root       5.0G  3.0G  1.8G  64% /
devtmpfs        2.0G     0  2.0G   0% /dev
tmpfs           395M  132K  395M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            24K   16K  8.0K  67% /var/gandi
tmpfs            24K   16K  8.0K  67% /var/gandi
tmpfs           789M     0  789M   0% /run/shm
/dev/xvdb       202G  168G   25G  88% /srv/data2_http

df -i
Filesystem       Inodes   IUsed    IFree IUse% Mounted on
rootfs           327680   67666   260014   21% /
/dev/root        327680   67666   260014   21% /
devtmpfs         504593     319   504274    1% /dev
tmpfs            504848     224   504624    1% /run
tmpfs            504848       2   504846    1% /run/lock
tmpfs            504848       5   504843    1% /var/gandi
tmpfs            504848       5   504843    1% /var/gandi
tmpfs            504848       2   504846    1% /run/shm
/dev/xvdb      13434880 2152940 11281940   17% /srv/data2_http

答案1

我遇到了同样的问题,目标目录有足够的空间,但我会收到“设备上没有剩余空间”的消息。原来 rsync 先将文件复制到其他地方,然后将其移动到目标目录。要更改此行为,请使用--inplace

根据https://download.samba.org/pub/rsync/rsync.html “当需要更新文件数据时,此选项会改变 rsync 传输文件的方式:rsync 不会采用默认方法,即创建文件的新副本并在完成后将其移动到位,而是将更新的数据直接写入目标文件。”

 rsync --inplace source destination

答案2

rsync首先将内容传输到目标文件夹中的临时文件;如果成功,则将临时文件重命名为目标文件。如果传输失败,则删除临时文件。一个 2GB 的文件会填满你的目标空间,rsync删除它之后,空间就会再次可用。 因此,rsync可以欺骗你对空间问题的调查

答案3

1)检查目标空间。

ssh [email protected] 
df -h /srv/data2_http

2) 尝试 rsync 的 --inplace 选项。它可以防止使用更多空间,但在传输过程中会导致目标文件不一致。

答案4

我们打电话给托管服务提供商,并在服务器正常运行时进行了一些测试。但什么也没发生。

最后,我刚刚重启了服务器,现在一切正常了。我之前没有这样做,因为这是一台生产服务器

相关内容