簡介:
站在用戶的角度思考問題,與客戶深入溝通,找到延川網(wǎng)站設(shè)計與延川網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋延川地區(qū)。1.expect的講解
2.實例操作自動登錄腳本
expect講解
expect可以讓我們實現(xiàn)自動登錄遠(yuǎn)程機(jī)器,并且可以實現(xiàn)自動遠(yuǎn)程執(zhí)行命令。當(dāng)然若是使用不帶密碼的密鑰驗證同樣可以實現(xiàn)自動登錄和自動遠(yuǎn)程執(zhí)行命令。但當(dāng)不能使用密鑰驗證的時候,我們就沒有辦法了。所以,這時候只要知道對方機(jī)器的賬號和密碼就可以通過expect腳本實現(xiàn)登錄和遠(yuǎn)程命令。
Expect中最關(guān)鍵的四個命令是send,expect,spawn,interact。
send:用于向進(jìn)程發(fā)送字符串
expect:從進(jìn)程接收字符串
spawn:啟動新的進(jìn)程
interact:允許用戶交互
send命令接收一個字符串參數(shù),并將該參數(shù)發(fā)送到進(jìn)程。
expect1.1> send "hello world\n"hello world
2. expect命令
expect命令和send命令正好相反,expect通常是用來等待一個進(jìn)程的反饋。expect可以接收一個字符串參數(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)行交互,但是我們跟希望他可以和某一個進(jìn)程進(jìn)行交互。spawm命令就是用來啟動新的進(jìn)程的。
set timeout -1spawn ftp ftp.test.com //打開新的進(jìn)程,該進(jìn)程用戶連接遠(yuǎn)程ftp服務(wù)器
expect "Name" //進(jìn)程返回Name時
send "user\r" //向進(jìn)程輸入
anonymous\rexpect "Password:" //進(jìn)程返回Password:時
send "123456\r" //向進(jìn)程輸入don@libes.com\r
expect "ftp> " //進(jìn)程返回ftp>時
send "binary\r" //向進(jìn)程輸入binary\r
expect "ftp> " //進(jìn)程返回ftp>時
send "get test.tar.gz\r" //向進(jìn)程輸入get test.tar.gz\r
到現(xiàn)在為止,我們已經(jīng)可以結(jié)合spawn、expect、send自動化的完成很多任務(wù)了。但是,如何讓人在適當(dāng)?shù)臅r候干預(yù)這個過程了。比如下載完ftp文件時,仍然可以停留在ftp命令行狀態(tài),以便手動的執(zhí)行后續(xù)命令。interact可以達(dá)到這些目的。下面的demo在自動登錄ftp后,允許用戶交互。
spawn ftp ftp.test.com
expect "Name"
send "user\r"
expect "Password:"
send "123456\r"
interact
2臺主機(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.新建一個自動登錄腳本文件
格式:
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ù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。