![rsync 失败并出现错误:无法统计目标...无法分配内存(12)](https://linux22.com/image/565982/rsync%20%E5%A4%B1%E8%B4%A5%E5%B9%B6%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%EF%BC%9A%E6%97%A0%E6%B3%95%E7%BB%9F%E8%AE%A1%E7%9B%AE%E6%A0%87...%E6%97%A0%E6%B3%95%E5%88%86%E9%85%8D%E5%86%85%E5%AD%98%EF%BC%8812%EF%BC%89.png)
我正在尝试将我的 Linux 服务器上的某些目录 rsync 到 Linux 服务器上本地安装的 /mnt/backups 处的 Windows 7 共享。
我的 rsync 命令如下所示:
rsync -avz --progress --partial --modify-window=1 --temp-dir=/tmp /home /mnt/backups
当它执行时我得到这个:
building file list ...
165048 files to consider
rsync: ERROR: cannot stat destination "/mnt/backups": Cannot allocate memory (12)
rsync error: errors selecting input/output files, dirs (code 3) at main.c(507) [receiver=2.6.9]
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(453) [sender=2.6.9]
我到处搜索,找到的唯一技巧就是添加--modify-window
和--temp-dir
选项,但这些并没有任何区别。
顺便说一句,我在尝试将备份文件 tar 到此安装位置时遇到过类似的问题,这就是我想切换到 rsync 的原因。我怀疑是 Samba 导致了这些问题,但表面上一切正常。不知道接下来还能做什么……
答案1
似乎是 Windows 7 端的一个问题。解决方法是更新以下两个注册表项。
将以下注册表项设置为“1”:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache
并将以下注册表项设置为“3”:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size
参考: http://frankooh.wordpress.com/2012/01/02/smbrsync-cannot-allocate-memory/ http://ubuntuforums.org/showthread.php?t=869994&page=2&p=8251122#post8251122 http://www.decuslib.com/decus/vmslt99a/nt/tips.txt https://groups.google.com/forum/#!topic/microsoft.public.windows.vista.networking_sharing/NF3jEW2VlmQ
答案2
无法分配内存(12)
接收端有多少 RAM?增加 Windows 上的虚拟内存,然后重试。