expect脚本实例-监控日至和磁盘空间

本文介绍了一种使用Expect和Bash脚本实现SSH自动化登录的方法,并通过一系列命令检查远程服务器上的错误日志,适用于运维场景中批量执行相同任务的需求。

本文中的**号是代替的字母,只要替换成对应的路径就可以了。

#!/bin/bash
#sleep 一定要在send后,send一定要在expect后
#awk $NF 代表最后一个匹配项

if [ $# != 4 ] ; then
 echo Usage: auth username address port password
 echo withour parameter:auth *
 echo ""
fi

if [ $# -eq 0 ] ; then
 param="mecp *"
fi

#[lrange list begin last]

cat >logon.sh <<EOF
#!/usr/bin/expect -f

 

set username [lindex /$argv 0]
set address [lindex /$argv 1]
set port [lindex /$argv 2]
set passwd [lindex /$argv 3]

for {} 1 {} {
spawn ssh /$username@/$address -p /$port

sleep 2
set timeout 5

expect {
 "yes/no*" {
     send "yes/r"
     exp_continue
   }
 "*assword:" {
     send "/$passwd/r"
  break
  } 
 timeout {
  close
  wait
  continue
  }
 }
}

set timeout 30

expect "/home/mecp*"
send  "ssh */r"

expect "*assword:"
send "shmobile8/r"

expect "home/mecp*"
send  "df/r"

expect "home/mecp*"
send  "cd /app/dz/umpay//r"

sleep 1
expect "app/dz/umpay*"
send  "ls -l | grep 149/r"

expect "app/dz/umpay*"
send  "cd /mecp2/logs/r"
sleep 1

expect "/mecp2/logs*"
send "ls -ltr | tail -1 | awk '{print ///$NF}' | xargs grep -i error/r"

sleep 4
expect "/mecp2/logs*"
send "cd /mecp2/domains/mecp_domains/servers/AdminServer/logs/r"

sleep 1
expect "servers/AdminServer/logs*"
send "grep -i error AdminServer.log/r"

sleep 3
expect "servers/AdminServer/logs*"
send  "exit/r"

expect "/home/mecp*"
send  "df -h/r"

sleep 1
expect "/home/mecp*"
send  "ssh *"

expect "*password:"
send "*"

expect "/home/mecp2*"
send  "df -h/r"

sleep 1
expect "/home/mecp2*"
send  "cd /home/mecp2/logs/weblogic//r"

sleep 1
expect "/home/mecp2/logs/weblogic*"
send "ls -ltr | tail -1 | awk '{print ///$NF}' | xargs grep -i error/r"

sleep 2
expect "/home/mecp2/logs/weblogic*"
send  "exit/r"

sleep 1
expect "/home/mecp*"
send "ssh *"
expect "*password:"

send "*"

sleep 1
send  "df -h/r"

sleep 1
expect "/home/mecp2*"
send  "cd /home/mecp2/logs/weblogic//r"

sleep 1
expect "/home/mecp2/logs/weblogic*"
send "ls -ltr | tail -1 | awk '{print ///$NF}' | xargs grep -i error/r"

sleep 2
expect "/mecp2/logs/weblogic*"
send  "exit /r"

sleep 1
expect "/home/mecp*"
send "cd /home/mecp2/logs/weblogic//r"

sleep 1
expect "/home/mecp2/logs/weblogic*"
send "ls -ltr | tail -1 | awk '{print ///$NF}' | xargs grep -i error/r"
sleep 2

expect "/mecp2/logs/weblogic*"
send  "exit /r"
interact
exit
EOF

chmod 700 logon.sh

if [ $# -eq 0 ] ; then
 ./logon.sh $param
else
 ./logon.sh ${1+"$@"}
fi

rm -f logon.sh

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值