rsync:--groupmap=*:www-data:未知选项
我正在尝试在我的 rsync 行中添加一个选项,以将传输的文件组设置为以 www-data 作为其组。
当我添加该选项时,我收到上述消息。
这是我正在尝试的 rsync 行:
rsync -avz --delete --chmod=ug=rwX,o=rX --groupmap=*:www-data ' -e "ssh -p 48" /cygdrive/e/test [email protected]:/var/vhost/locals/test
如果没有 -groupmap 标志,文件将会以 john:john 而不是所需的 jonh:www-data 的形式登陆。
这是从 windows 到 ubuntu。
有人有什么想法吗?
当我尝试使用--chown时,情况也是一样的:
rsync: --chown=john:www-data: unknown option
答案1
您引用的选项包括在版本 3.1.0rsync,但看起来你在 Windows 上使用 cygwin,它可能直到2014 年 6 月。
鉴于与您的问题的接近性,您可能正在使用旧版本的 rsync。也许您只需要升级到最新的 cygwin/rsync?
rsync --version
答案2
解决这个问题最快的方法是反转到 Windows。如果你从 Windows 在 Ubuntu 上进行 rsync,你应该能够在那里设置权限。
答案3
我放弃了。一个解决方法是以 john:www-data 的身份运行 apache。rsync 会以 john 的身份将新文件复制到目标,但 apache 可以以 john:www-data 的身份正常读取它们。
[...]
<IfModule mpm_itk_module>
AssignUserId john www-data
</IfModule>
[...]
答案4
rsync 版本 3.1.2
我主要在本地使用 Windows,因此这是我用来与服务器(debian)同步文件的命令行:
user@user-PC /cygdrive/c/wamp64/www/projects
$ rsync -rptgoDvhP --chown=www-data:www-data --exclude=.env --exclude=vendor --exclude=node_modules --exclude=.git --exclude=tests --exclude=.phpintel --exclude=storage ./website/ username@hostname:/var/www/html/website
我希望这对你有帮助