我在使用 rsync 时遇到了一个奇怪的问题:某些文件未保存在远程主机上。
在我的 Windows 2012 服务器上我使用:
rsync --progress --no-compress --partial -avshW "/cygdrive/d/foto" '[email protected]:/usb/backup' | wintee C:\BAT\logs\backup_foto.log 2>&1
我得到如下输出:
foto/2013/01/xx xx xx/IMG_5536.JPG
32.77K 1% 189.35kB/s 0:00:11 1.15M 49% 921.05kB/s 0:00:01 2.26M 98% 221.09kB/s 0:00:00 2.29M 100% 224.34kB/s 0:00:09 (xfer#2, to-check=1304/35107)
foto/2013/01/xx xx xx/IMG_5537.JPG
32.77K 1% 6.25MB/s 0:00:00 491.52K 15% 348.84kB/s 0:00:07 1.38M 42% 565.42kB/s 0:00:03 1.54M 47% 388.83kB/s 0:00:04 2.59M 79% 406.17kB/s 0:00:01 3.11M 95% 414.84kB/s 0:00:00 3.26M 100% 420.75kB/s 0:00:07 (xfer#3, to-check=1303/35107)
foto/2013/01/xx xx xx/IMG_5538.JPG
32.77K 1% 1.95MB/s 0:00:01 360.45K 14% 75.86kB/s 0:00:26 1.41M 58% 195.29kB/s 0:00:05 2.41M 100% 301.40kB/s 0:00:07 (xfer#4, to-check=1302/35107)
foto/2013/01/xx xx xx/IMG_5539.JPG
32.77K 1% 42.33kB/s 0:01:05 65.54K 2% 33.60kB/s 0:01:21 589.82K 21% 150.71kB/s 0:00:14 1.64M 58% 163.72kB/s 0:00:07 2.16M 77% 194.01kB/s 0:00:03 2.69M 95% 255.82kB/s 0:00:00 2.81M 100% 229.96kB/s 0:00:11 (xfer#5, to-check=1301/35107)
foto/2013/01/xx xx xx/IMG_5540.JPG
32.77K 1% 2.60MB/s 0:00:01 393.22K 13% 359.21kB/s 0:00:06 1.28M 45% 603.19kB/s 0:00:02 1.97M 69% 421.33kB/s 0:00:02 2.49M 87% 388.68kB/s 0:00:00 2.83M 100% 440.40kB/s 0:00:06 (xfer#6, to-check=1300/35107)
但是这些文件从未在远程主机上创建!
root@pinew:/usb/backup/foto/2013/01/xx xx xx# ls -al
total 8
drwx------ 2 matthijs matthijs 4096 Jan 27 2013 .
drwx------ 5 matthijs matthijs 4096 Jan 27 2013 ..
更奇怪的是,“foto”(照片)目录包含“2011”,“2012”,“2013”之类的内容,例如 2011 和 2012 目录是同步的!
那么:怎么可能只有一个(或者可能是一些我还没有找到的目录)目录没有被推送到远程主机呢?
来源:Windows 2012 服务器
目的地:Raspberry pi:Linux pinew.xxxx.nl 3.10.24+ #614 PREEMPT Thu Dec 19 20:38:42 GMT 2013 armv6l GNU/Linux
编辑:
@rxt
嗯,2013 目录确实具有与其他目录不同的权限:
drwx------ 14 matthijs matthijs 4096 Aug 15 2012 2010
drwx------ 30 matthijs matthijs 4096 Aug 15 2012 2011
drwx------ 25 matthijs matthijs 4096 Mar 24 2013 2012
d--------- 16 matthijs matthijs 4096 Dec 22 12:33 2013
这很奇怪,因为这些文件不是我创建的,而是 rsync 创建的。但是,当我删除目录并重新启动 rsync 作业时,它会以相同的权限再次创建!
所以我认为问题是:为什么 1 个目录获得的权限与其他目录不同?我在 Windows 上检查过,但它们具有相同的安全设置!
编辑2:
解决方案:
将以下内容添加--chmod=u+rwx
到您的 rsync 命令中!(或手动设置权限,但在这种情况下,您永远无法确定它是否成功)
答案1
我猜这是权限问题,在 Linux 系统上没有适当的权限。在 PI 上,转到 foto 文件夹并执行以下命令:
ls -al
这应该显示文件夹的所有者和组,以及谁有写权限。
如果您不介意删除未同步的文件夹,请删除它们,然后再次 rsync 并查看它们是否重新创建。如果发生这种情况,它们应该具有适当的权限。将其与之前的输出进行比较。如果不是,请向我们提供 ls 命令的输出。