linux执行多个执行文件命令是什么意思,在多台linux主机上执行相同的命令

有时候我们需要在若干台linux主机上执行相同的命令,或者安装相同的软件,可以使用如下两种方法:

实验环境,有9台RHEL5.5_x64的主机,host表如下:

test-1 10.9.1.1

test-2 10.9.1.2

test-3 10.9.1.3

test-4 10.9.1.4

test-5 10.9.1.5

test-6 10.9.1.6

test-7 10.9.1.7

test-8 10.9.1.8

test-login 10.10.1.1

其中test-login为登陆节点,test-login到其他8台主机的ssh信任连接已经建立。

方法一:

for i in {1..8}; do ssh test-$i ‘hostname; mkdir –p /root/test’; done

如果ssh后面有多条命令要在远程主机上执行,必须用引号把所有的命令括起来,否则只会有第一条命令在远程主机上执行。

方法二:

安装tentakel, tentakel是一个可以在多台linux主机上执行相同命令的脚本。

下载tentakel-2.2.tgz,解压后make && make install

配制tentakel,把tentakel.conf.simple拷贝为/etc/tentakel.conf,编辑该配置文件:

# first section: global parameters

set ssh_path=”/usr/bin/ssh” //设置ssh的路径

set method=”ssh” //设置命令使用的方法,先ssh到目标主机,然后执行相关的命令

#set user=”root” # 设置ssh时使用的帐号,如果不指定,用户为使用tentakel的帐号

#set format=”%d %o\n”

#set maxparallel=”3″ # run at most 3 commands in parallel

# second section: groups

group default () //默认的组,也可以使用-g参数指定不同的主机组

@test

group test ()

+test-1

+test-2

+test-3

+test-4

+test-5

+test-6

+test-7

+test-8

group test-login ()

+test-login

group all ()

@test

@test-login

上面这个配制文件定义了三个主机组,@test包括了test1-test8这8台节点,@test-login包括了test-login这台节点,@all包括了@test和@test-login这两个主机组,共9台节点。同时定义了默认主机组为@test。

常用的参数:

tentakel –l 列出可用的主机组

tentakel –g groupname‘command’在groupname上执行command,command要用引号引起来。

配置完成以后发现报错:

tentakel –g test ‘hostname’

Traceback (most recent call last):

File “/usr/local/bin/tentakel”, line 42, in ?

import lekatnet.error as error

ImportError: No module named lekatnet.error

原因是没有拷贝lekatnet文件:cp -r py/lekatnet/ /usr/lib/python2.4/site-packages/

tentakel –g test ‘mkdir –p /root/test’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值