我正试图通过Windows(cygwin)上的ssh将更改推送到我的服务器rsync
.我使用的命令是:
rsync -rvz -e ssh/cygdrive/c/myfolder/rsyncuser@192.168.1.110:/ srv/www/prj112/myfolder /
/srv/www/prj112/myfolder/
由...拥有rsyncuser
.我的问题是尽管rsync
子目录是在发布时创建的,但每个目录都被赋予了默认权限,d---------
因此rsync
无法复制其中的任何文件.
我该如何解决?
Lar*_*man 68
在Cygwin 1.7版中,忽略NTFS权限的选项已更改.这可能是导致问题的原因.
尝试将"noacl"标志添加到C:\ cygwin\etc\fstab中的Cygwin挂载中,例如:
none /cygdrive cygdrive user,noacl,posix=0 0 0
Run Code Online (Sandbox Code Playgroud)
您可以使用'chmod'选项通过rsync传递自定义权限:
rsync -rvz --chmod=ugo=rwX -e ssh source destination
Run Code Online (Sandbox Code Playgroud)
您的问题源于这个目录上的Unix权限确实是0的事实.所有访问信息都存储在单独的ACL中,rsync不会复制.因此,它将远程副本上的权限设置为0,显然,之后无法写入该目录.你可以跑
chmod -R 775
Run Code Online (Sandbox Code Playgroud)
在该目录上,它应该修复您的rsync问题.
在查看了联机帮助页后,我可以看出,自版本~2.6.8以来,chmod param在rsync中可用.但你必须--chmod=ugo=rwX
结合使用rsync -av
您还应该尝试以下命令:
rsync -av <SOURCE_DIR> rsyncuser@192.168.1.110:/srv/www/prj112/myfolder
Run Code Online (Sandbox Code Playgroud)
它至少可以在Linux上运行.请注意,rsync不需要提及ssh - 至少在Linux上是这样.
但如果一切都失败了,只是给出一个选项,你可以看看这个准备好的打包工具cwRsync
如果你从windows部署一个站点(例如octopress使用rsync),可以设置775添加多个chmod命令的权限:
rsync -avz --chmod=ug=rwx --chmod=o=rx -e ssh
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36846 次 |
最近记录: |