首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用其中链接的命令运行rsync

如何使用其中链接的命令运行rsync
EN

Server Fault用户
提问于 2018-04-10 16:03:29
回答 1查看 704关注 0票数 0

我有点困惑于用rsync运行命令。

我的场景: abc.com xyz.com

abc.com的根公钥被添加到xyz.com,反之亦然。

但是,我能够与普通用户测试进行rsync,但是我希望在服务器xyz.com上执行sudo状态命令,并且数据的副本也必须执行。

在abc.com中,我执行以下命令

代码语言:javascript
复制
sudo rsync -avz -e "ssh -i /root/.ssh/id_rsa.pub" /var/lib/cdsw/ xyz.com:/var/lib/cdsw/

但是我想在远程服务器xyz.com上rsync之前执行sudo状态,并执行sudo启动,当rsync完成复制时,如何使用上面的命令进行链接?

我试过所有的可能性,但都没有用。

请帮帮忙。

EN

回答 1

Server Fault用户

发布于 2018-04-10 21:59:32

这真的不是rsync的问题..。但更多的是bash/脚本问题。

实际上,-e参数的设计只是为了让远程服务器上的shell运行。它不是用来执行任意命令的。你真的只有两个选择,我可以从我的头顶上想到:

1)多个ssh请求:

代码语言:javascript
复制
sudo ssh -i /root/.ssh/id_rsa.pub abc.com cdsw status
sudo rsync -avz -e "ssh -i /root/.ssh/id_rsa.pub abc.com" /var/lib/cdsw/ xyz.com:/var/lib/cdsw/
sudo ssh -i /root/.ssh/id_rsa.pub abc.com cdsw start

2)创建远程服务器登录时调用的自定义脚本:

/root/定制-rsync.sh

代码语言:javascript
复制
#!/bin/bash
function cleanup {
  echo "Starting cdsw"
  cdsw start
}
trap cleanup EXIT
cdsw status
bash

然后:

代码语言:javascript
复制
sudo rsync -avz -e "ssh -i /root/.ssh/id_rsa.pub abc.com /root/custom-rsync.sh" /var/lib/cdsw/ xyz.com:/var/lib/cdsw/

旁白一下.我不太清楚为什么你的私钥以".pub“结尾。这通常被认为是你的公钥。删除.pub,将允许您只使用sudo ssh abc.com而不必指定标识文件,因为ssh将自动尝试使用id_rsa而无需询问。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/906978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档