批量ssh执行命令
主要参考https://www.tecmint.com/run-commands-on-multiple-linux-servers/
clusterssh
ArchLinux:
sudo pacman -S clusterssh
# 可以使用~/.ssh/config里的别名
cssh host1 host2 host3
cssh username@server1 username@server2 username@server3
会为每个服务器开一个xterm窗口,此外还有一个小的只有一个输入条的窗口。在服务器对应的xterm输入的话,输入就只发送到这台服务器上,但是如果在输入条里输入的话,输入会发送到所有服务器,因此sudo输入密码甚至是使用vim都是可以的。
一些快捷键:
Alt+n
: 把每个server的hostname粘贴到各个server。
Ctrl+v
: 把剪切板里的内容粘贴到各个server。
完整版:man cssh
解决xterm的复制粘贴问题
xterm默认将选中的区域放入PRIMARY buffer,然后鼠标中键将PRIMARY buffer里的内容粘贴出来。但是系统剪切板是CLIPBOARD buffer。因此xterm不能跟系统剪切板交互。可以让xterm使用CLIPBOARD: https://www.bianchengquan.com/article/450754.html
然后选中区域就会被放入系统剪切板,鼠标中键就会把系统剪切板里的东西粘贴出来。
parallel-ssh
ArchLinux:
sudo pip3 install parallel-ssh
但是parallel-ssh命令找不到
sudo pip3 install pssh
提示version.VERSION没有。
参考:https://www.cyberciti.biz/cloud-computing/how-to-use-pssh-parallel-ssh-program-on-linux-unix/
pdsh
ArchLinux:
yay -S pdsh