博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell实现交互式登陆一台同时管理多台机器
阅读量:7143 次
发布时间:2019-06-28

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

最近为了检测公司服务器的硬盘需要开10多台服务器的僚机来检测服务器,可是这10来台都是操作一样的命令,挨个操作下去太麻烦了

然后就想到了交互式登陆 这里需要创建一个Ip文件夹把你的Ip账户密码都放进去,然后Expect执行的时候会直到循环到最后才会结束,是不是可好玩呢。

expect交互式可是需要安装的,可以直接yum install expect -y  当然你也可以编译安装,我喜欢yum的,方便,这里就不多说了,贴上代码

代码如下:

#!/usr/bin/expect -fset f [open ./ip r]while { [gets $f line ]>=0 } {set ip [lindex $line 0]set pwd [lindex $line 2]spawn ssh -o StrictHostKeyChecking=no $ipexpect  "*password:" { send "$pwd\r" }expect "#"send "ifconfig \r"send "iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 123 -j ACCEPT \r"send "service iptables save \r"send "yum install ntpdate -y \r"send "/usr/sbin/ntpdate 0.cn.pool.ntp.org \r"send "echo '*/10 * * * * sh /root/testdisk.sh' > /var/spool/cron/root \r"send "echo '10 5 * * * /usr/sbin/ntpdate 0.cn.pool.ntp.org' >> /var/spool/cron/root \r"send "exit\r"interact}

 磁盘检测的脚本如下:

#!/bin/bashPATH=/bin:/etc:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHdd if=/dev/zero of=/test.dbf bs=1024k count=1000 2>writedisk.txtif [ $? -eq 0 ]thenw=`tail -n 1 writedisk.txt|cut -d, -f3 |sed 's/ //g'`        dd if=/test.dbf of=/dev/null bs=1024k 2>readdisk.txt        if [ $? -eq 0 ]        then        r=`tail -n 1 readdisk.txt|cut -d, -f3 |sed 's/ //g'`        s=`date -d today +"%Y-%m-%d,%T"`        echo $s--$r,$w >> w.txt        else        echo "fail"        fielseecho "fail"fi

 

转载于:https://www.cnblogs.com/yangxiaofei/p/5165679.html

你可能感兴趣的文章
DataUml Design 教程1-初识
查看>>
初学者如何学习运维?
查看>>
我的友情链接
查看>>
spring组件扫描<context:component-scan/>使用详解
查看>>
十个很有用的HTML5&CSS3网站设计登陆表单教程集
查看>>
python问题解决汇总
查看>>
使用memorycache作为session共享配置
查看>>
java计算sq执行时间
查看>>
我的友情链接
查看>>
五月互联网公司上市疯狂
查看>>
【scala初学】scala 语法 for
查看>>
我的友情链接
查看>>
用50行Python代码制作一个计算器
查看>>
Attention is All You Need
查看>>
多个业务子系统的集中统一管理用户权限,SQL脚本批量事务运行的参考代码
查看>>
RHEL6.4 和centos5.8搭建本地yum源
查看>>
grails可配置数据源(datasource)
查看>>
symantec backup exec備份vm發現的幾個問題
查看>>
智能硬件产品的测试经验总结
查看>>
Oradim工具的用法
查看>>