我正在使用 Rsync 部署到远程服务器,它正在工作。但是文件和目录所有权总是用 root:root 替换旧文件
我需要将传输到远程服务器上目标文件夹的所有文件和文件夹的所有权更改为 www-data:www-data。
我需要通过 ssh 以 root 身份访问服务器,因为我没有 www-data 的密码。目前我必须传输所有文件,然后在终端中运行 chown 命令,但我想自动执行此操作。
目前我正在尝试以下操作,但它不起作用或传输任何文件。
'rsync -rlDvz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress --exclude exclude
--exclude .htaccess --exclude site/accounts source
root@ ip
: dest
&& chown -R user
: group
dest
'
谢谢
答案1
尝试rsync -aAX
这应该转移所有权/组和扩展属性(例如:selinux)
答案2
Rsync 在 3.1.0 及以上版本中具有 --usermap 和 --groupmap
https://rsync.samba.org/ftp/rsync/src/rsync-3.1.0-NEWS
因此,如果你有 3.1 或更高版本,你可以使用--usermap=www-数据:www-数据或者--chown=www-数据:www-数据使用如下 rsync 命令
rsync --chown=user:group -rlDvz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress source user@ip:dest