我在主机上运行这个简单的命令:
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对其进行编码,然后在主机上进行解码,所以我不必担心自己的终端会碍事。
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中变化。
为什么?
发布于 2022-02-03 11:56:00
如果您有GNU并行尝试(未经测试):
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-sessionhttps://unix.stackexchange.com/questions/689095
复制相似问题