成都论坛

使用expect批量远程执行脚本和命令

[复制链接]

1275

主题

1275

帖子

1013

积分

金牌会员

Rank: 6Rank: 6

积分
1013
分享到:
发表于 2021-11-24 10:54:23 | 显示全部楼层 |阅读模式

我们有时可能会批量去操作服务器,比如批量在服务器上上传某个文件,安装软件,执行某个命令和脚本,重启服务,重启服务器等,如果人工去一台台操作的话会特别繁琐,并浪费人力。这时我们可以使用expect,向目标服务器上发送指令去实现批量操作。
下面的例子将在centos上将一个文件,批量拷贝到其他服务商上,并执行相应的命令
1. centos上安装expectyuminstallexpect2. 编写expect脚本copyfilebatch.sh下面的脚本将向内网IP192.168.0.102 192.168.0.112 的服务器分别拷贝一个rc.local文件,拷贝成功后,执行chmod命令,分别重启服务器
#!/usr/bin/expect-fsetpasswordrootpasswordfor{seti102}{$i<=112}{incri}{setip"192.168.0.$i"puts"$ip"spawnssh-oStrictHostKeyChecking=no$ipsettimeout3expect"root@$ip'spassword:"settimeout3send"$password\r"settimeout3send"exit\r"spawnscp/home/install/rc.localroot@$ip:/etc/rc.d/rc.localsettimeout3expect"root@$ip'spassword:"settimeout3send"$password\r"settimeout3send"exit\r"spawnsshroot@$ipexpect{"*yes/no"{send"yes\r";exp_continue}"*password:"{send"$password\r"}}expect"#*"#要执行的命令send"chmod+x/etc/rc.d/rc.local\r"send"reboot\r"send"exit\r"expecteof}以上就是本文的全部内容,希望对大家的学习有所帮助
采用MPLS VPN数据包只需要在OSI第二层(数据链路层)的硬件中进行交换(取代第三层(网络层)软件式routing)。它将IP路由和第二层标签标记交换为单一的系统,因此可以解决Internet路由的问题,使数据包传送的延迟时间减短,增加网络传输的速度,更适合多媒体讯息的传送。


快速回复 返回顶部 返回列表