Shell实现交互式登陆一台同时管理多台机器
2016-01-28 11:45
651 查看
最近为了检测公司服务器的硬盘需要开10多台服务器的僚机来检测服务器,可是这10来台都是操作一样的命令,挨个操作下去太麻烦了
然后就想到了交互式登陆 这里需要创建一个Ip文件夹把你的Ip账户密码都放进去,然后Expect执行的时候会直到循环到最后才会结束,是不是可好玩呢。
代码如下:
磁盘检测的脚本如下:
然后就想到了交互式登陆 这里需要创建一个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
相关文章推荐
- 《高级Bash脚本编程指南》十年来首次修订
- HBase总结(二十)HBase经常使用shell命令具体说明
- powershell玩转sqlite数据库
- Powershell RESTAPI 访问Office365
- linux shell 基本知识
- 转 shell awk 使用详解
- shell相关的用法
- Mac 必备神器之 Go2Shell 以及使用技巧
- bash 整理
- RWMC:利用PowerShell提取Windows账号密码的利器
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
- hook模板x86/x64通用版(2)--中转函数的shellcode编写
- Linux Shell算数运算
- Linux Shell 字符串拼接
- Linux Shell 文件操作
- spark-shell的wordcount的例子存档
- spark-shell的环境测试
- Shell条件判断总结
- b374k php webshell
- shell处理时间date