首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行ssh在主机上执行两次脚本。

并行ssh在主机上执行两次脚本。
EN

Unix & Linux用户
提问于 2022-02-03 09:30:43
回答 1查看 69关注 0票数 1

我在主机上运行这个简单的命令:

代码语言:javascript
复制
apt update > /dev/null 2>&1 && apt upgrade -y  > /dev/null 2>&1 && wget -4 -q --header 'XXXX' -O - https://raw.githubusercontent.com/XXX/add.sh | bash -x

为了让我的生活更简单,我使用base64对其进行编码,然后在主机上进行解码,所以我不必担心自己的终端会碍事。

代码语言:javascript
复制
parallel-ssh -t 500 -O StrictHostKeyChecking=no -i -h /root/hosts -x "-i /root/.ssh/ssh_host_ed25519_key" 'BASE64 STRING | base64 -w 0 -d | bash'

但是我的脚本在主机上被执行了两次。我不知道为什么。主机上的原始命令按预期工作,将sh脚本编成bash,只执行一次。行为在平行-ssh中变化。

为什么?

EN

回答 1

Unix & Linux用户

发布于 2022-02-03 11:56:00

如果您有GNU并行尝试(未经测试):

代码语言:javascript
复制
env_parallel --session
doit() {
  apt update > /dev/null 2>&1 &&
    apt upgrade -y  > /dev/null 2>&1 &&
    wget -4 -q --header 'XXXX' -O - https://raw.githubusercontent.com/XXX/add.sh |
    bash -x
}
env_parallel --nonall --ssh 'ssh -O StrictHostKeyChecking=no -i -h /root/hosts -x "-i /root/.ssh/ssh_host_ed25519_key"' -S server1,server2 doit
env_parallel --end-session
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/689095

复制
相关文章

相似问题

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