包含Linux同时执行多命令的词条-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

包含Linux同时执行多命令的词条

Linux多台主机批量执行命令

指定一台主机作为信任主机,这样从这台主机登录其他机器就不需要密码了。

专注于为中小企业提供网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业清水河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

设置信任主机:

假设有四台机器:192.168.2.1~192.168.2.4,其中192.168.2.1为信任机,那么在192.168.2.1上运行如下命令:

$ssh-keygen -t rsa //此处一路回车,生成秘钥

$scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘钥拷贝到其他远程机器

$ssh 192.168.2.2 ‘cat id_rsa.pub .ssh/authorized_keys’ //(远程执行命令)在远程机器上生成认证文件

经过这几步,从192.168.2.1 ssh登陆192.168.2.2时,就不会再需要输入密码了。同样的步骤再执行3、4的极其。

文本文件hostlist可以如下

192.168.2.2

192.168.2.3

192.168.2.4

#!/bin/shdoCommand(){    

hosts=`sed -n'/^[^#]/p'hostlist`

for   host  in   $hosts

do

echo ""

echo  HOST$host

ssh  $host  "$@" 

done

return 0

}

if  [  $# -lt 1 ]

then

echo "$0cmd" exit 

fi

do  Command "$@"

echo "return from doCommand"

执行命令(记得先对doCommand.s

h增加执行权限 chmod u+x doCommand.sh)

./doCommand.sh “ls -al /root/”

这样该脚本就会在每台机器上执行”ls -al /root/”这个命令,并返回结果在信任主机上。

Linux一次在多个服务器运行命令

如果您维护多个Linux服务器,则有时您希望在所有服务器上运行相同的命令。例如,您可能希望安装/升级软件包,修补内核以及更新配置等。如果您必须登录到每个服务器并手动运行相同的命令,那将是一项繁琐的工作。

这篇文章是关于一个管理工具,它允许您一次在许多不同的机器上运行相同的命令。

通过ClusterSSH,您可以同时在多个主机上进行相同的更改。它提供了一个特殊的控制台界面,您在控制台中输入的任何内容都会自动发送到任意数量的主机。

在Linux上安装ClusterSSH

在Ubuntu,Debian或Linux Mint上安装ClusterSSH:

$ sudo apt-get install clusterssh

要在CentOS或RHEL上安装ClusterSSH,首先需要设置EPEL存储库,然后运行以下命令。

$ sudo yum install clusterssh

要在Fedora上安装ClusterSSH,只需运行:

$ sudo yum install clusterssh

配置ClusterSSH

安装后,第一步是定义要在其上运行命令的主机群集。为此,请按如下方式创建系统范围的ClusterSSH配置文件。

$ sudo vi / etc / clusters

clusters = my_cluster my_cluster2

my_cluster = host1 host2 host3 host4

my_cluster2 = host5 host6

如果您需要特定于用户的ClusterSSH配置,只需使用〜/ .csshrc而不是/ etc / clusters。在上面的示例配置中,我定义了两个集群:“my_cluster”由四个主机组成,“my_cluster2”包含两个主机。群集是您要登录并运行命令的一组主机。

当您使用任何用户定义的群集启动ClusterSSH时,它将使用ssh登录到群集中的各个主机,并在主机上运行任何用户类型的命令。

启动ClusterSSH

要启动ClusterSSH,请按如下方式运行cssh命令。

$ cssh -l dev my_cluster

在上文中,“dev”是群集中所有主机的登录ID,“my_cluster”是群集名称。

如果需要,可以指定单个主机名而不是群集名。

$ cssh -l dev host1 host2 host3

一旦CSSH执行命令时,它会弹出用于单个主机的XTerm窗口,以及标记的一个小窗口“CSSH [2]”,其是ClusterSSH控制台窗口。无论您在控制台窗口中输入什么,都将同时出现在各个主机的XTerm窗口中。基本上,您可以通过单一控制台窗口控制所有XTerm窗口。

如果要将某些命令运行到特定的XTerm窗口,只需将焦点切换到Xterm窗口,然后像往常一样键入命令。

以下屏幕截图显示了ClusterSSH的运行情况,其中群集中有五个主机,左上角的控制台窗口是您应该键入要在所有五个主机上运行的命令的位置。

转自 嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证

linux怎样一次运行多个shell脚本?

inux 下shell脚本执行多个命令的方法\x0d\x0a1.每个命令之间用;隔开\x0d\x0a说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。\x0d\x0a2.每个命令之间用隔开\x0d\x0a说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。\x0d\x0a3.每个命令之间用||隔开\x0d\x0a说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止


分享文章:包含Linux同时执行多命令的词条
URL标题:http://kswsj.cn/article/hshcio.html

其他资讯