Linux多台主机批量执行命令

Linux多台主机批量执行命令,第1张

指定一台主机作为信任主机,这样从这台主机登录其他机器就不需要密码了。设置信任主机: 假设有四台机器:192.168.2.1~192.168.2.4,其中192.168.2.1为信任机,那么在192.168.2.1上运行如下命令: $.sh-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/”这个命令,并返回结果在信任主机上。

如果执行没有顺序的话,可以试试这个命令:

for filename in $( ls /opt/weblogic/jstx/bin)do sh "/opt/weblogic/jstx/bin/"$filenamedone

上面的命令默认目录下所有文件都是.sh的,如果有其他格式的可以过滤以后在执行:

for filename in $( ls /opt/weblogic/jstx/bin |grep ".sh")do sh "/opt/weblogic/jstx/bin/"$filenamedone

如果需要开机启动这些脚本,可以将命令写到 /etc/rc.local

或者把命令写到脚本jiaoben.sh,然后sh jiaoben.sh:

#!/bin/bash

for filename in $( ls /opt/weblogic/jstx/bin|grep ".sh")

do

sh "/opt/weblogic/jstx/bin/"$filename

done

exit

方法一:

使用perl ,命令如下:

下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的

”http://repo1.maven.org/maven2“

替换

”http://localhost:8081/nexus/content/groups/public“.

这里用到了Perl语言,

perl -pi -e 在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.

从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。

方法二:

使用sed命令如下:

Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。

例如:我要把aaa替换 为bbb,执行命令:

这是目前linux最简单的批量替换字符串命令了!

具体格式如下:

实例代码:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6205145.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存