記錄一下我們工作中常用的登錄腳本,網(wǎng)上有很多,完全可以照抄,但是自己記錄下平時(shí)的積累吧,加深自己的理解吧
一般的自動(dòng)登錄腳本是通過expect腳本來進(jìn)行實(shí)現(xiàn)的。
如果沒有安裝expect,先進(jìn)行安裝expect
yum install expect
##############################################
#!/usr/bin/expect
set ip "192.168.1.1"
set user "pb"
set passwd "pbisgood"
set port "22"
set timeout 30
spawn ssh -q -l$user -p$port $ip
expect {
"yes/no" {
send "yes\r";
exp_continue;
}
"password:" {
send "$passwd\r"
}
}
expect "~]$ "
send "ssh -q l$user -p 22 $ip\r"
puts "\n--> Connected: $ip, please enjoy yourself!\n"
interact
##############################################
有腳本基礎(chǔ)的基本都能看懂spaw前面的。
spawn ssh -q -l$user -p$port $ip
spawn 會(huì)啟動(dòng)新的進(jìn)程,這里表示啟動(dòng)一個(gè)新的進(jìn)程 通過ssh進(jìn)行連接對(duì)應(yīng)的機(jī)器。
expect {
"yes/no" {
send "yes\r";
exp_continue;
}
"password:" {
send "$passwd\r"
}
}
expect命令 可以接收一個(gè)字符串參數(shù),也可以接收正則表達(dá)式參數(shù)。
send將參數(shù)發(fā)送到進(jìn)程。
expect 還有一個(gè)模式匹配的功能: 即當(dāng)標(biāo)準(zhǔn)輸入一個(gè)字符串時(shí),輸出相應(yīng)的輸出。所以這里當(dāng)遇到“yes/no”時(shí)會(huì)自動(dòng)將“yes\r"發(fā)送給進(jìn)程。
interact:允許用戶交互
interact 后就可以進(jìn)行操作了