我想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
rsync将内容传输到目标文件夹中的临时文件; 如果成功,则将该临时文件重命名为目标文件。 如果传输失败,则删除临时文件。 一个2GB的文件将会填满你的目标空间,然后在rsync删除之后,空间再次可用。 所以, rsync可以欺骗你的空间问题的调查 。
1)检查目的地空间。
ssh [email protected] df -h /srv/data2_http
2)尝试使用rsync的–inplace选项。 它防止使用更多空间,但在传输过程中使目标文件不一致。
我们打电话给我们的主机提供商,我们做一些testing,而服务器是起来 但没有。
最后,我只是重新启动服务器,它现在的作品…我以前没有这样做,因为它是一个生产服务器
我有同样的问题,目的地目录有足够的空间,但我会得到“没有空间留在设备上”。 结果rsync将文件复制到其他地方,然后将其移动到目标目录。 要改变这种行为,请使用--inplace 。
根据https://download.samba.org/pub/rsync/rsync.html “这个选项改变了rsync在数据需要更新时如何传输文件:而不是创build文件的新副本的默认方法,在完成时将其移动到位,rsync会将更新后的数据直接写入目标文件。
rsync --inplace source destination