我有一台本地服务器,我们将其称为 A,它可以访问远程服务器。
我想要将rsync
远程服务器的目录同步到本地服务器,并且将同步的目录放在 A 上的挂载单元中。
问题是远程目录的权限受到限制,因此我必须在远程服务器上rsync
以sudo
模式运行该命令,但从服务器 A 运行。
我能怎么做?
答案1
更简单的策略是登录远程服务器然后从那里运行同步命令,具有 sudo 权限。
我假设你在两台机器上都在 Linux 下工作。
我们来调用本地用户上的用户名本地服务器, 和远程用户上的用户名远程服务器。
- 在本地服务器在路径中安装了外部单元
/media/MyUsb
- 在远程服务器有一个名为 的目录
/data/DirToSync
。
localuser@localserver ~> ssh -X remoteuser@remoteserver
它应该会询问你的密码远程用户在远程服务器之后它将在远程服务器上显示提示:
remoteuser@remoteserver ->
您可以在此处写入同步命令:
sudo rsync -av /data/DirToSync localuser@localserver:/media/MyUsb
它会询问sudo
远程机器的密码(远程用户@远程服务器) 以及目的地的密码 (localuser@localserver 的密码)。
笔记
- 你需要在sudoers 列表远程机器的权限(这意味着您必须拥有运行 的权限)。尝试在远程服务器上
sudo
执行并在要求时输入密码。如果它执行命令,则说明您位于该列表中。(如果您位于该列表中并且不需要密码,这应该是一种非常罕见且不安全的情况;在这种情况下,您不必为 写密码)。sudo ls
ls
sudo
ssh/rsync
如果您已经生成并安装了ssh 密钥。- 通过
ssh
你甚至可以通过那里向本地主机发送sudo
命令rsync
,但是语法稍微复杂一些,请参阅例如这里sudo
,并且您可能会因为某些版本的Linux而遇到一些问题。