簡介:
成都創(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:允許用戶交互
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
上文的所有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
到現(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
3.更改權(quán)限
chmod +x login.expect
4.執(zhí)行腳本語句
./login.expect
輸入客戶機(jī)的密碼即可登錄
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)