linux的自動(dòng)登錄腳本

記錄一下我們工作中常用的登錄腳本,網(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)行操作了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容