阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Shell实现交互式登陆一台同时管理多台机器

132次阅读
没有评论

共计 1233 个字符,预计需要花费 4 分钟才能阅读完成。

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

然后就想到了交互式登陆 这里需要创建一个 Ip 文件夹把你的 Ip 账户密码都放进去,然后 Expect 执行的时候会直到循环到最后才会结束,是不是可好玩呢。
expect 交互式可是需要安装的,可以直接 yum install expect -y  当然你也可以编译安装,我喜欢 yum 的,方便,这里就不多说了,贴上代码

代码如下:

#!/usr/bin/expect -f
set f [open ./ip r]
while {[gets $f line]>=0 } {
set ip [lindex $line 0]
set pwd [lindex $line 2]
spawn ssh -o StrictHostKeyChecking=no $ip
expect  “*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/bash
PATH=/bin:/etc:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
dd if=/dev/zero of=/test.dbf bs=1024k count=1000 2>writedisk.txt
if [$? -eq 0]
then
w=`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”
        fi
else
echo “fail”
fi

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-05/130903.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计1233字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中