我在Windows 7上使用rsync(特别是cwrsync)。我使用了一个简单的命令:
rsync -r --perms --delete /cygdrive/c/Users/Michael/Documents/Personal/ /cygdrive/c/Users/Michael/Documents/Personal_Backup/
递归复制工作得很好,除非我是(右键单击/Properties/Security选项卡)在rsync在目标上创建的任何文件夹;我得到以下弹出消息:
{folderName}的权限顺序不正确,可能导致有些条目是无效的
我也尝试了——acls选项,但得到以下错误:
recv_acl_access: value out of range: ff rsync error: rsync错误协议数据流(代码12)在acls.c(690)[接收器=3.0。rsync:连接异常关闭(到目前为止收到9字节)[发送方]Rsync错误:Rsync协议数据流(代码12)错误io.c(610)(发送方= 3.0.8)
在任何情况下,我只是想正确地使用rsync,以便在Windows中查看安全权限不会抛出错误。
Michael,
这个解决方案建议您不应该使用--perms
,而应该使用--chmod=ugo=rwX
。
祝你好运!
Dotan
一个字,Robocopy。
我在使用cwRsync时遇到了同样的问题,尝试了很多事情,但似乎都不起作用,所以我最终放弃了。
这是默认的Windows工具,具有类似的(对于您的目的,相同的)特性集。
我昨晚发现了它,并完全放弃了rsync。它是为类unix系统构建的,所以在Windows上可能会有一些令人失望的东西。
这让我开始:
http://www.sevenforums.com/tutorials/187346-robocopy-create-backup-script.html这是我为自己制作的小备份脚本,用于将分区镜像到外部驱动器。
我使用现在已弃用的调用在复制发生后将自己添加回去。
rsync -avASPC sourceDir/* destDir
cacls destDir /t /e /r doej
cacls destDir /t /e /g doej:f
其中sourceDir为源目录,destDir为目的目录,doej为用户名。使用icacls可能会更好,但我还没有学过。
我也尝试过机器人复制,但我似乎没有获得工作所需的权限。
用于rsync的标志
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve modification times
-g, --group preserve group
-o, --owner preserve owner (super-user only)
-D same as --devices --specials
--devices preserve device files (super-user only)
--specials preserve special files
-v, --verbose increase verbosity
-S, --sparse handle sparse files efficiently
-A, --acls preserve ACLs (implies -p, which is also implied by -a)
-P same as --partial --progress
--progress show progress during transfer
--partial keep partially transferred files
-C, --cvs-exclude auto-ignore files in the same way CVS does
CACLS使用的标志
/T Changes ACLs of specified files in
/E Edit ACL instead of replacing it.
/R user Revoke specified user's access rights (only valid with /E).
/P user:perm Replace specified user's access rights.
Perm can be: ...
F Full control