圖文教程自動(dòng)登錄expect腳本實(shí)例

簡介:

成都創(chuàng)新互聯(lián)專注于管城企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站建設(shè)。管城網(wǎng)站建設(shè)公司,為管城等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

1.expect的講解

2.實(shí)例操作自動(dòng)登錄腳本


expect講解


expect可以讓我們實(shí)現(xiàn)自動(dòng)登錄遠(yuǎn)程機(jī)器,并且可以實(shí)現(xiàn)自動(dòng)遠(yuǎn)程執(zhí)行命令。當(dāng)然若是使用不帶密碼的密鑰驗(yàn)證同樣可以實(shí)現(xiàn)自動(dòng)登錄和自動(dòng)遠(yuǎn)程執(zhí)行命令。但當(dāng)不能使用密鑰驗(yàn)證的時(shí)候,我們就沒有辦法了。所以,這時(shí)候只要知道對(duì)方機(jī)器的賬號(hào)和密碼就可以通過expect腳本實(shí)現(xiàn)登錄和遠(yuǎn)程命令。


Expect中最關(guān)鍵的四個(gè)命令是send,expect,spawn,interact。

send:用于向進(jìn)程發(fā)送字符串
expect:從進(jìn)程接收字符串
spawn:啟動(dòng)新的進(jìn)程
interact:允許用戶交互


1. send命令

send命令接收一個(gè)字符串參數(shù),并將該參數(shù)發(fā)送到進(jìn)程。


expect1.1> send "hello world\n"hello world


2. expect命令


expect命令和send命令正好相反,expect通常是用來等待一個(gè)進(jìn)程的反饋。expect可以接收一個(gè)字符串參數(shù),也可以接收正則表達(dá)式參數(shù)。


expect "hi\n"send "hello there!\n"

這兩行代碼的意思是:從標(biāo)準(zhǔn)輸入中等到hi和換行鍵后,向標(biāo)準(zhǔn)輸出輸出hello there



3. spawn命令

上文的所有demo都是和標(biāo)準(zhǔn)輸入輸出進(jìn)行交互,但是我們跟希望他可以和某一個(gè)進(jìn)程進(jìn)行交互。spawm命令就是用來啟動(dòng)新的進(jìn)程的。


set timeout -1spawn ftp ftp.test.com      //打開新的進(jìn)程,該進(jìn)程用戶連接遠(yuǎn)程ftp

send "user\r"        //向進(jìn)程輸入

anonymous\rexpect "Password:"        //進(jìn)程返回Password:時(shí)

send "123456\r"    //向進(jìn)程輸入don@libes.com\r

expect "ftp> "            //進(jìn)程返回ftp>時(shí)

send "binary\r"           //向進(jìn)程輸入binary\r

expect "ftp> "            //進(jìn)程返回ftp>時(shí)

send "get test.tar.gz\r"  //向進(jìn)程輸入get test.tar.gz\r



4.interact

到現(xiàn)在為止,我們已經(jīng)可以結(jié)合spawn、expect、send自動(dòng)化的完成很多任務(wù)了。但是,如何讓人在適當(dāng)?shù)臅r(shí)候干預(yù)這個(gè)過程了。比如下載完ftp文件時(shí),仍然可以停留在ftp命令行狀態(tài),以便手動(dòng)的執(zhí)行后續(xù)命令。interact可以達(dá)到這些目的。下面的demo在自動(dòng)登錄ftp后,允許用戶交互。

spawn ftp ftp.test.com

expect "Name"

send "user\r"

expect "Password:"

send "123456\r"

interact




2臺(tái)主機(jī)


服務(wù)端:back :192.168.19.134

客戶端:other:192.168.19.135




服務(wù)端操作


1.使用expect之前,需要先安裝expect:


yum install -y expect 

安裝ssh


yum install openssh-server -y 


yum -y install openssh-clients

2.新建一個(gè)自動(dòng)登錄腳本文件

格式:

       spawn ssh -l username 192.168.1.1

expect{

      "(yes/no)?" { send "yes"; exp_continue}

      "password:" {send "AAAA"}

         }

 interact


vim login.expect

#! /usr/bin/expect

#about login

#written by lizheng

set host "192.168.19.135"

set passwd "lizheng123"

spawn ssh  root@$host

expect {

    "yes/no" { send "yes\r"; exp_continue}

    "password:" { send "$passwd\r" }

   }

interact

圖文教程自動(dòng)登錄expect腳本實(shí)例

圖文教程自動(dòng)登錄expect腳本實(shí)例

3.更改權(quán)限

chmod +x login.expect

圖文教程自動(dòng)登錄expect腳本實(shí)例圖文教程自動(dòng)登錄expect腳本實(shí)例

4.執(zhí)行腳本語句

./login.expect


輸入客戶機(jī)的密碼即可登錄

圖文教程自動(dòng)登錄expect腳本實(shí)例圖文教程自動(dòng)登錄expect腳本實(shí)例

5.退出

logout

網(wǎng)站標(biāo)題:圖文教程自動(dòng)登錄expect腳本實(shí)例
URL鏈接:http://bm7419.com/article28/jjdhcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站域名注冊(cè)、微信小程序企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)