expect结合ssh遍历线上机器

有个需求,有个文件删除了,但是不确定线上机器还都存不存在

#!/home/work/.jumbo/bin/expect -f
set timeout -1
set mac [lindex $argv 0]
set password "***"
spawn ssh [email protected]$mac
expect {
        "(yes/no)?" {
                        send "yes\r"
                        expect "*password:" { send "$password\r"}
                }
        "*password:" { send "$password\r"}
}
expect {
        "*password:" {
                send "\003"
                send_user "this mac nologin"
        }
        ".*" {
                send "cd /home/work/odp/data/app/searchbox/baiduboxapp/config/android/; ls\r"
        }
}
expect ".*"
#!/bin/bash
get_instance_by_service *** | while read mac
do
        echo $mac
        res=`./expect.sh $mac`
        if echo $res | grep -q ‘this mac nologin‘; then
                echo -e "\e[1;31m======nologin\e[0m"
        elif echo $res | grep -q ‘opact‘; then
                echo -e "\e[1;33m======has\e[0m"
        else
                echo -e "\e[1;32m======no\e[0m"
        fi
done
时间: 2024-11-04 10:11:32

expect结合ssh遍历线上机器的相关文章

运维守护神——数十万线上机器的守护【门神】

随着京东云业务的飞速发展,其需要管理的物理机.虚机以及各类容器已经达到了数十万之巨,在如此数量如此庞大资源机如何管理的课题面前,京东云意识到必须开发自己的高效.安全.稳定的资源机管理系统,为京东云乃至整个京东集团各项业务的发展提供坚实可靠的后盾,"门神"系统在这种情况下应运而生,并在经过多次京东618.11.11等诸多重大活动的检验后,变得愈发成熟稳定. "门神"顾名思义,就是守护整个京东资源机云安全的守护神,是京东云平台自主研发的一套基于服务树角色授权的线上机器运

expect脚本自动化执行线上服务器命令

这个expect脚本是为了获取线上服务器的容量大小,并无实际意义 #!/usr/bin/expect set timeout 60       #设置超时 set user [lindex $argv 0]    #设置第一个参数 set password [lindex $argv 1] set ipaddr [lindex $argv 2]set port [lindex $argv 3] set mypassword [lindex $argv 4] spawn ssh [email pr

线上机器JVM参数配置

记录一下线上机器的JVM参数配置: CATALINA_OPTS="$CATALINA_OPTS -server -Djava.awt.headless=true -Xms2560m [JVM初始分配的堆内存 2.5G]-Xmx2560m [JVM最大可用堆内存 2.5G]-Xss256k [每个线程的堆栈大小]-XX:PermSize=128m [永久代大小]-XX:MaxPermSize=384m [永久代最大值]-XX:NewSize=1024m [新生代初始内存大小]-XX:MaxNewS

GDB调试Segment Fault的线上http进程的方法

有些问题只有在大并发访问量的线上机器上才能体现出来,测试机没法重现. 我们可以使用GDB来解决这个问题. 首先在命令行启动GDB GDB 然后输入 attach http进程id 如果需要设置断电的话,可以先执行stop,然后设置断电 然后 输入 c 或者 continue 让这个进行继续提供服务,如果这个进程发生了Segfault错误,我们可以通过 bt 等跟踪命令,来查看问题出在哪里

系统上线那点事 - 记一次线上系统故障

该项目是一个微信转盘游戏抽奖营销项目.因为运营营销时间要求紧迫.开发測试部署上线用了10天不到,有些准备工作并没有到位,如: 1.因为总体开发在上线前2天才完毕,測试了解这个项目需求是在开发的第二周,并没有充足的时间进行完好的功能,UI机型适配,系统压力測试. 2.技术上因为合作方的公众号密钥并不适合直接给出,所以由对方封装微信接口获取所需功能,对方封装的微信接口给出比較迟,在预定開始时间前三天: 微信的网页接口授权回调域名仅仅有一个.这个回调域名还有其它应用在使用,不能直接简单的改为我们部署应

一种线上服务日志切分与压缩方法

1.业务背景 对于线上业务而言,打印日志是一个系统运行状况的全面体检,日志打得约详细,越容易查找问题,但是机器磁盘是有限的,这时候很容易将磁盘撑爆.所以打印日志多少要选取一个平衡,打印适量的日志,只在关键环节,容易出错的地方打印日志即可.但是随着业务量的提升,即使我们控制了打印日志的频率,但日志文件的容量也在大量扩大.如果我们对日志文件的处理方式不当,日志文件将打到磁盘上线,新业务就再也刷不出来任何日志了. 因此,我们对日志的处理一般分为三个步骤: 打印当天日志,历史日志重命名为带日期格式,以示

记一次线上gc调优的过程

近期公司运营同学经常表示线上我们一个后台管理系统运行特别慢,而且经常出现504超时的情况.对于这种情况我们本能的认为可能是代码有性能问题,可能有死循环或者是数据库调用次数过多导致接口运行过慢.应领导要求,我们将主站中进行性能测试的框架代码(见我前面一篇博文记录一次通过性能日志处理线上性能问题的过程)添加到了该后台管理系统中.上线运行一段时间后,查看相关日志可以看到如下分析日志: 通过该日志可以发现,dao方法一直获取不到数据库链接池,但是根据实际情况考虑应该不大可能,原因有两点: 主站和后台管理

TFS线上生成环境发布历程

继前文 TFS在项目中Devops落地进程(上) TFS在项目中DevOps落地进程(下) 自从之前将开发环境使用TFS进行了自动化之后,就享受在此成果中,其他后续进度就停顿了好一段时间. 毕竟在我们这对于开发而言,做出代码交出发布包事情就结束了,而我们的TFS已经完美的将这个流程给自动化掉了. 本文将聚焦在TFS发布到线上生产环境中所做的一些工作和实践,如果只是纠结于如何使用TFS可以参考上面的2个链接. 之前的线上发布流程 说下我们大概的背景,我们的程序上线流程目前还是相对传统一些,大体是:

服务器线上问题排查研究

线上问题诸如: 1.线上服务器CPU占用率高如何排查? 2.线上服务器Load飙高如何排查?  3.线上服务器频繁发生Full GC如何排查?  4.线上服务器发生死锁如何排查? 一:线上服务器CPU占用率高如何排查? 问题发现: 在每次大促之前,我们的测试人员都会对网站进行压力测试,这个时候会查看服务的cpu.内存.load.rt.qps等指标. 在一次压测过程中,测试人员发现我们的某一个接口,在qps上升到500以后,CPU使用率急剧升高. CPU利用率,又称CPU使用率.顾名思义,CPU利