您好,登錄后才能下訂單哦!
本篇文章為大家展示了linux中的expect命令怎么用,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
expect 是由Don Libes基于Tcl(Tool Command Language )語言開發(fā)的,主要應(yīng)用于自動(dòng)化交互式操作的場(chǎng)景,借助Expect處理交互的命令,可以將交互過程如:ssh登錄,ftp登錄等寫在一個(gè)腳本上,使之自動(dòng)化完成。尤其適用于需要對(duì)多臺(tái)服務(wù)器執(zhí)行相同操作的環(huán)境中,可以大大提高系統(tǒng)管理人員的工作效率
expect [選項(xiàng)][ -c cmds] [ [ -[f|b] ] cmdfile] [ args]
-c:從命令行執(zhí)行expect腳本,默認(rèn)expect是交互地執(zhí)行的
expect -c 'expect "\n" {send"pressed enter\n"}
-d:可以輸出輸出調(diào)試信息
expect -d ssh.exp
expect中相關(guān)命令
expect “hi” {send “You said hi\n"}
匹配到hi后,會(huì)輸出“you said hi”,并換行
expect"hi" { send "You said hi\n" } \
"hehe"{ send “Hehe yourself\n" } \
"bye"{ send “Good bye\n" }
匹配hi,hello,bye任意字符串時(shí),執(zhí)行相應(yīng)輸出。等同如下:
expect {
"hi"{ send "You said hi\n"}
"hehe"{ send "Hehe yourself\n"}
"bye"{ send “Good bye\n"}
}
cat ssh2.exp
#!/usr/bin/expect
spawn ssh 192.168.8.100
expect {
"yes/no" { send"yes\n";exp_continue }
"password" { send“magedu\n" }
}
interact
#expect eof
cat ssh3.exp
#!/usr/bin/expect
set ip 192.168.8.100
set user root
set password magedu
set timeout 10
spawn ssh $user@$ip
expect {
"yes/no" { send"yes\n";exp_continue }
"password" { send"$password\n" }
}
interact
vim ssh4.exp
#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
spawn ssh $user@$ip
expect {
"yes/no" { send"yes\n";exp_continue }
"password" { send"$password\n" }
}
interact
#./ssh4.exp 192.168.8.100 rootmagedu
cat ssh5.exp
#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set timeout 10
spawn ssh $user@$ip
expect {
"yes/no" { send"yes\n";exp_continue }
"password" { send"$password\n" }
}
expect "]#" { send"useradd haha\n" }
expect "]#" { send"echo magedu |passwd –stdin haha\n" }
send "exit\n"
expect eof
#./ssh5.exp 192.168.8.100 rootmagedu
vim ssh6.sh
#!/bin/bash
ip=$1
user=$2
password=$3
expect
set timeout 10
spawn ssh$user@$ip
expect {
"yes/no" { send"yes\n";exp_continue}
"password" { send"$password\n" }
}
expect "]#" { send"useraddhehe\n" }
expect "]#" { send "echomagedu|passwd–stdinhehe\n" }
expect "]#" { send"exit\n" }
expect eof
EOF
#./ssh6.sh 192.168.8.100 rootmagedus
Linux是一種免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),是一個(gè)基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),使用Linux能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。
上述內(nèi)容就是linux中的expect命令怎么用,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。