本文中的**号是代替的字母,只要替换成对应的路径就可以了。
#!/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