我想将目录/var/sites/example.net/
从远程计算机同步到本地计算机上相同路径的目录。
远程计算机仅使用密钥而不是密码对SSH连接进行身份验证。
在我的本地计算机上,我在〜/ .ssh / config中设置了一个别名,以便可以轻松运行ssh myserver
以进入。
我正在尝试,rsync -a myserver:/var/sites/example.net/ /var/sites/example.net/
但是失败了,因为我的本地用户无权编辑本地目录/var/sites/example.net/。
如果尝试sudo rsync -a myserver:/var/sites/example.net/ /var/sites/example.net/
(仅添加sudo),则可以解决本地权限问题,但是随后遇到另一个问题-我的本地root用户看不到正确的ssh密钥或ssh别名。
有没有一种方法可以通过修改此rsync命令来完成此文件同步?我想避免更改其他任何内容(例如,不更改文件权限或ssh设置)
尝试这个:
sudo rsync -e "sudo -u localuser ssh" -a myserver:/var/sites/example.net/ /var/sites/example.net/
它rsync
以root身份运行,但是该-e
标志导致rsync
以ssh
本地用户身份运行(使用sudo -u localuser
),因此该ssh
命令可以访问必需的凭据。Rsync本身仍以root用户身份运行,因此它具有必需的文件系统权限。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句