— 作者伟成
需要screen 创建一个可交互的SHELL环境
expect 作为自动交换
通过while + sleep 制定定时器
#!/usr/bin/expect
# 设置超时时间为 60 秒
set timeout 120
# 设置要登录的主机 IP 地址
set host [lindex $argv 0]
# 设置以什么名字的用户登录
set name xxxUser
# 设置用户名的登录密码
set password xxxxxPassword
#spawn 一个 ssh 登录进程
spawn ssh $host -l $name -p22 -o StrictHostKeyChecking=no
# 等待响应,第一次登录往往会提示是否永久保存 RSA 到本机的 know hosts 列表中;等到回答后,在提示输出密码;之后就直接提示输入密码
expect {
"(yes/no)?" {
send "yes\n"
expect "assword:"
send "$password\n"
}
"assword:" {
send "$password\n"
expect "<XJ-F100>"
send "dis diagnostic-information\n"
send "N"
expect "<XJ-F100>"
send "quit"
}
}
#/bin/bash
basDir='/tmp/xiajiaoF100'
while [ 1 -eq 1 ]
do
Day=`date "+%Y%m%d"`
Hour=`date "+%H"`
minute=`date "+%m%S"`
mkdir -p ${basDir}/${Day}/${Hour}
/usr/bin/expect ${basDir}/sshexcept RemoteIp | tee ${basDir}/${Day}/${Hour}/${Day}${Hour}${minute}.log
cd ${basDir}/${Day}/${Hour}/
gzip ${basDir}/${Day}/${Hour}/${Day}${Hour}${minute}.log
cd ${basDir}/
sleep 30
done