博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量远程执行命令
阅读量:6258 次
发布时间:2019-06-22

本文共 3052 字,大约阅读时间需要 10 分钟。

批量远程执行命令

在一台机器上远程到多台机器上执行多条命令,怎么实现呢?

写一个登录到多台机器并执行命令的脚本文件remote-exec-command.sh

vim /usr/local/sbin/expect/remote-exec-command.sh#!/usr/bin/expectset host [lindex $argv 0]set command [lindex $argv 1]set user "root"set passwd "root"spawn ssh $user@$hostexpect {"yes/no" {send "yes\r";exp_continue}"password:" {send "$passwd\r"}}expect "]*"send "$command\r"expect "]*"expect eof

写一个远程机器的ip列表集合文件

vim /tmp/desip.txt192.168.221.20192.168.221.30

写一个调用remote-exec-command.sh这个脚本的文件exec.sh

vim /usr/local/sbin/expect/exec.sh#!/bin/bashfor ip in `cat /tmp/desip.txt`; do        ./remote-exec-command.sh $ip "who;ifconfig"done

执行exec.sh

[root@localhost expect]# bash exec.sh spawn ssh root@192.168.221.20root@192.168.221.20's password: Last login: Sun Mar 18 16:47:04 2018 from 192.168.221.10[root@apenglinux-002 ~]# who;ifconfigroot     tty1         2018-03-03 10:46root     pts/0        2018-03-18 13:29 (192.168.221.10)root     pts/1        2018-03-18 10:01 (192.168.221.1)root     pts/2        2018-03-18 16:59 (192.168.221.10)ens33: flags=4163
mtu 1500 inet 192.168.221.20 netmask 255.255.255.0 broadcast 192.168.221.255 inet6 fe80::5d25:422c:6b81:44f6 prefixlen 64 scopeid 0x20
ether 00:0c:29:d3:03:2c txqueuelen 1000 (Ethernet) RX packets 18903 bytes 1403073 (1.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 18097 bytes 3892662 (3.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73
mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback) RX packets 72 bytes 5776 (5.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 72 bytes 5776 (5.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@apenglinux-002 ~]# spawn ssh root@192.168.221.30root@192.168.221.30's password: Last login: Sun Mar 18 16:47:15 2018 from 192.168.221.10[root@apenglinux-002 ~]# who;ifconfigroot pts/0 2018-03-18 15:45 (192.168.221.1)root pts/1 2018-03-18 17:00 (192.168.221.10)ens33: flags=4163
mtu 1500 inet 192.168.221.30 netmask 255.255.255.0 broadcast 192.168.221.255 inet6 fe80::52c5:3f9d:6d2b:445a prefixlen 64 scopeid 0x20
ether 00:0c:29:34:2f:3a txqueuelen 1000 (Ethernet) RX packets 17781 bytes 16618859 (15.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12771 bytes 903704 (882.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73
mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback) RX packets 688 bytes 174164 (170.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 688 bytes 174164 (170.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

转载于:https://blog.51cto.com/13480443/2088205

你可能感兴趣的文章
去中心化并不是比特币的关键和核心,真的有用才是
查看>>
0629 - 基本完成 iPaste 的 Pin 管理
查看>>
经典:头像与昵称描述的位置组合
查看>>
【CSS模块化之路2】webpack中的Local Scope
查看>>
浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践
查看>>
「每日一瞥
查看>>
java 线程池
查看>>
排序算法总结
查看>>
python模块学习(二)
查看>>
近期的爬虫工作杂谈
查看>>
机器学习之 k 近邻
查看>>
canvas核心技术-如何绘制图形
查看>>
netty源码分析之pipeline(二)
查看>>
面试:讲讲 Android 的事件分发机制
查看>>
计算机程序的思维逻辑 (95) - Java 8的日期和时间API
查看>>
计算机程序的思维逻辑 (8) - char的真正含义
查看>>
2019 年技术大趋势预测
查看>>
推荐一款基于vue的滚动条插件vuescroll
查看>>
安全圈有多大?也许就这么大!
查看>>
App基于手机壳颜色换肤?先尝试一下用 KMeans 来提取图像中的主色
查看>>