— 做者偉成
須要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