我将要通过SSH连接到多台计算机,因此我将拥有多个终端窗口,尽管我要做的是执行命令,以便所有计算机都可以执行该命令,但是目前我要执行的操作是要做的就是在每个终端窗口中执行该命令,有什么方法可以在一个终端中执行命令,该终端将在所有指定的终端会话中执行指定的命令,从而提高效率,因为我不想输入它进入每个终端窗口?gnome-terminal
如果这有任何区别,我将使用它。
我正在将GNOME 3.18与Ubuntu GNOME 15.10一起运行,其他计算机也应运行相同的命令。
我使用的一种方法是ClusterSSH
一次发送到多个终端窗口。
sudo apt-get install clusterssh
ClusterSSH
将打开其自己的终端窗口,您可以使用该应用程序向其发送命令。进入后,ClusterSSH
按Ctrl+ Shift++或Hosts
在菜单中单击,然后选择Add host(s) or cluster(s)
并键入所有要打开的内容,并用空格隔开。您应该看到一个像这样的窗口:
然后在File Hosts Send Help
菜单项下方的框中键入要发送到所有窗口的任何命令。
我还编写了一个脚本,您可以从命令提示符处运行该脚本,以根据需要打开任意数量的Cluster SSH窗口。我确实建议您在运行此脚本之前运行ssh-copy-id localhost
它,以便它在不要求输入密码的情况下启动。
剧本:
#!/bin/bash
if [[ $1 == "" ]]; then
echo -n "Please enter number of CSSH windows you want to open: "
read num1
else
num1=$1
fi
if [[ ! ${num1} || ${num1} = *[^0-9]* ]]; then
echo "${num1} is invalid input. Please only use numbers."
exit 1
fi
for i in $(seq $num1); do echo localhost; done | xargs nohup cssh >/dev/null 2>&1 &
disown -a
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句