精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Expect 技巧大揭秘:輕松應對腳本中的交互挑戰

運維 自動化
簡單來說,Expect程序用于自動處理通常需要人工操作的交互式任務,比如在使用SSH或FTP時自動輸入指令,從而實現更自動化的運維工作。

什么是Expect

Expect 是一個很實用的工具,能幫我們自動完成那些需要手動交互的任務。簡單來說,它就是用來讓這些交互過程自動化的。它是用TCL這種腳本語言寫的,既容易學又功能強大。

為什么要使用Expect

現在的企業運維里,自動化運維越來越流行了。但有時候,系統在執行某些命令或程序時,還是會要求運維人員手動輸入一些信息才能繼續。比如,給用戶設置密碼的時候,通常需要手動輸入兩次密碼。如下所示:

[root@didiplus ~]# passwd root
Changing password for user oldboy.
New password:          #<需要手工輸入密碼。
Retype new password:   #<需要再次手工輸入密碼。
passwd: all authentication tokens updated successfully.

比如說,當你第一次用SSH遠程連接到服務器時,你需要進行兩次輸入操作,如下所示:

[root@didiplus ~]# ssh root@192.168.33.130
The authenticity of host'192.168.33.130 (192.168.33.130)' can't be established.
RSA key fingerprint is fd:2c:0b:81:b0:95:c3:33:c1:45:6a:1c:16:2f:b3:9a.
Are you sure you want to continue connecting (yes/no) yes  #<需要手工輸入yes。
Warning: Permanently added '192.168.33.130' (RSA) to the list of known hosts.
root@192.168.33.130's password:                         #<需要手工輸入密碼。
Last login: Tue Oct 11 00:06:35 2016 from 192.168.33.128
[root@node ~]#

通過上面的例子,大家應該都清楚為什么需要用Expect程序了。簡單來說,Expect程序用于自動處理通常需要人工操作的交互式任務,比如在使用SSH或FTP時自動輸入指令,從而實現更自動化的運維工作。

安裝Expect軟件

首先,確保你的機器能正常上網,并設置好yum的安裝源。接著,運行yum install expect -y命令來安裝Expect軟件。如下所示:

[root@didiplus ~]# rpm -qa expect         #<檢查是否安裝。
[root@didiplus ~]# yum install expect -y  #<執行安裝命令。
[root@didiplus ~]# rpm -qa expect         #<==再次檢查是否安裝。
expect-5.44.1.15-5.el6_4.x86_64

案例演示

首先,請準備好兩臺虛擬機或真實服務器。具體的IP地址和主機名信息如下:

IP地址

主機名

192.168.33.128

didiplus

192.168.33.130

node1

在運行下面的例子前,先手動在128這臺服務器上執行以下命令:

ssh  root@192.168.33.130 uptime#<==連接到130上查看負載值。

執行結果如下:

[root@didiplus ~]# ssh  root@192.168.33.130 uptime
The authenticity of host'192.168.33.130 (192.168.33.130)' can't be established.
RSA key fingerprint is fd:2c:0b:81:b0:95:c3:33:c1:45:6a:1c:16:2f:b3:9a.
Are you sure you want to continue connecting (yes/no) yes #<根據提示手工輸入yes。
Warning: Permanently added '192.168.33.130' (RSA) to the list of known hosts.
root@192.168.33.130's password    #<手工輸入密碼。
21:20:35 up 1 day,  9:08,  1 user,  load average: 0.08, 0.02, 0.01

每次執行ssh命令時,都得手動輸入密碼,不然就用不了。接下來,咱們試試用Expect這個工具來自動處理這個過程,讓它自動填入密碼并運行ssh命令。

[root@didiplus ~]# cat didiplus.exp      #<擴展名使用exp代表是Expect腳本。
#!/usr/bin/expect      #<腳本開頭解析器,和Shell類似,表示程序使用Expect解析。
spawn ssh root@192.168.33.130 uptime#<執行ssh命令(注意開頭必須要有spawn,
                                            否則無法實現交互)。
expect"*password"#<利用Expect獲取執行上述ssh命令輸出的字符串是否為期待的
                               字符串*password,這里的*是通配符。
send "123456\n"#<當獲取到期待的字符串*password時,則發送123456密碼給系統,\n為換行。
expect eof     #<處理完畢后結束Expect。

執行腳本:

[root@didiplus ~]# which expect
/usr/bin/expect
[root@didiplus ~]# expect didiplus.exp   #<使用Expect執行腳本是個好習慣。
spawn ssh root@192.168.33.130 uptime
root@192.168.33.130's password       #<這里再也不需要手工輸入密碼了。
 21:24:05 up 1 day,  9:12,  1 user,  load average: 0.00, 0.00, 0.00
[root@oldboy ~]# expect oldboy.exp
spawn ssh root@192.168.33.130 uptime
root@192.168.33.130's password       #<==這里再也不需要手工輸入密碼了。
21:24:08 up 1 day,  9:12,  1 user,  load average: 0.00, 0.00, 0.00

我們現在還沒手動輸入密碼,就已經自動連接到遠程機器執行ssh命令了,是不是很神奇?

常用命令

(1) spawn命令

在使用Expect編寫自動交互程序時,你需要先用spawn命令啟動程序或執行命令。隨后的自動交互操作都將基于這個已啟動的程序或命令進行。簡而言之,沒有spawn命令,你的Expect程序就無法完成自動交互。

spawn命令的語法為:

spawn [選項][需要自動交互的命令或程序]

例如:

spawn ssh root@192.168.33.130 uptime

當你使用spawn命令時,可以直接在后面加上你想要運行的命令或程序,比如這里的ssh命令。此外,spawn還提供了幾個額外的選項:

  • 使用 -open 可以啟動一個文件進程。
  • 使用 -ignore 可以讓程序忽略特定的信號。

(2) expect命令

在編寫自動交互腳本時,首先使用spawn命令啟動程序或執行命令。如果該命令輸出需要響應的信息,則使用expect命令來等待并匹配這些輸出。一旦匹配成功,就執行預設的動作。此外,通過使用如-re這樣的選項,可以利用正則表達式進行更靈活的匹配。

expect命令的語法為:

expect  表達式  [動作]

示例如下:

spawn ssh root@192.168.33.130 uptime
expect"*password"{send  "123456\r"}

不能直接在Linux的命令行里輸入這個命令,得把它放到一個Expect腳本里面去運行。

執行ssh命令遠程獲取服務器負載值,并自動輸入yes及用戶密碼。

[root@didiplus ~]# cat test.exp
#!/usr/bin/expect
spawn ssh root@192.168.33.130 uptime
expect{#<起始大括號前要有空格。
"yes/no"{exp_send "yes\r";exp_continue}#<exp_send和send類似。
"*password"{exp_send "123456\r"}
}
expect eof

執行如下輸出:

[root@didiplus ~]# expect test.exp
spawn ssh root@192.168.33.130 uptime
The authenticity of host'192.168.33.130 (192.168.33.130)' can't be established.
RSA key fingerprint is fd:2c:0b:81:b0:95:c3:33:c1:45:6a:1c:16:2f:b3:9a.
Are you sure you want to continue connecting (yes/no) yes  #<expect自動輸入yes。
Warning: Permanently added '192.168.33.130' (RSA) to the list of known hosts.
root@192.168.33.130's password:  #<expect自動給密碼。
22:03:13 up 1 day,  9:51,  1 user,  load average: 0.00, 0.00, 0.00
#<==輕松打印出負載值。

(3) send命令

在上述例子中,我們介紹了exp_send和send命令的使用方法。這兩個Expect中的命令功能相似,都是用來在匹配到特定字符串后向系統發送指定內容。它們支持如\r(回車)、\n(換行)和\t(制表符)等轉義字符,這些與TCL中的用法一致。

Send命令的使用示例如下:

#!/usr/bin/expect
spawn /bin/sh 18_3_1.sh
expect{
"username"{exp_send "oldboy\r";exp_continue}
"*pass*"{send "123456\r";exp_continue}
"*mail*"{exp_send "31333741@qq.com\r"}
}
expect eof

send命令有幾個可以使用的參數:

  • -i:用來指定進程ID(spawn_id),這樣你就可以向不同的進程發送命令了。這個參數對于同時控制多個程序很有用。
  • -s:這里的s指的是“慢速”(slowly)。使用這個參數可以控制發送命令的速度。記得要和expect里的send_slow變量一起使用。

(4) send_user命令

send_user命令可以用來在Expect腳本中顯示信息,就像你在Shell里使用echo一樣。而send和exp_send命令則是把字符串發送給程序本身。下面是一個關于如何使用send_user命令的例子。

[root@didiplus ~]# cat 18_4_1.exp
#!/usr/bin/expect
send_user "hello world\n"#<\n表示換行。
send_user "I like linux,\t hello world"#<\t表示Tab鍵。

執行結果如下:

[root@didiplus ~]# expect send_user.exp
hello word
I like linux,  hello world
責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2023-10-23 09:44:00

并發管理線程

2025-02-20 08:20:00

AISOC網絡攻擊

2025-03-26 01:25:00

Spring開發JSON

2023-03-30 14:14:45

Kubernetes

2020-08-24 11:42:08

智慧建筑物聯網技術

2020-07-14 07:12:19

云安全AI無服務器

2024-02-01 18:06:04

Python編程系統

2018-08-13 05:03:36

2025-02-19 08:30:00

SOC網絡安全安全運營中心

2020-04-26 08:11:39

邊緣計算云端網絡

2020-02-29 08:57:12

智能工業物聯網IIoT

2011-03-15 14:19:50

2009-10-29 10:34:31

ADO.NET使用技巧

2023-04-11 16:13:44

JavaScripSymbol前端

2025-08-25 06:00:00

Python編程排序算法

2020-02-05 10:51:15

云計算采購人工具

2009-10-13 09:14:48

遷移Windows 7

2010-08-27 17:48:38

CSS

2012-08-10 17:19:03

2009-09-24 16:56:12

點贊
收藏

51CTO技術棧公眾號

欧美好骚综合网| 国产视频一区二区视频| 国产艳妇疯狂做爰视频| 精品影院一区| 97久久综合区小说区图片区| 91免费看片在线观看| 播播国产欧美激情| 国产欧美日韩综合一区在线观看| 一级性生活大片| 毛片在线导航| 国产原创一区二区| 伊是香蕉大人久久| 亚洲欧洲日产国码无码久久99| 国产丝袜在线视频| 久久精品国产99久久| 日韩一区二区三区观看| 一区二区三区四区视频在线观看 | 波多野结衣人妻| 日韩最新av| 国产精品成人在线观看| 国产91对白在线播放| 少妇愉情理伦片bd| 国产福利在线看| 国产精品久久久久久久免费软件| 制服丝袜在线91| 亚洲国产精品久久久久婷婷老年 | 中文字幕免费高清电视剧网站在线观看| 蘑菇福利视频一区播放| 欧美不卡视频一区| 在线观看成人免费| 91亚洲国产成人久久精品麻豆| 九九综合久久| 91国产丝袜在线播放| 久久久久久久久四区三区| www..com国产| 色婷婷av一区二区三区丝袜美腿| 亚洲风情在线资源站| 超碰97在线播放| 一区二区三区免费高清视频| 日韩欧美高清一区二区三区| 色8久久精品久久久久久蜜 | 69xxx在线| 国产精品人人做人人爽人人添| 日本午夜人人精品| 欧洲美一区二区三区亚洲| 日本三级一区| 久久理论电影网| 国产精品久久久久免费a∨| 亚洲第一综合网| 亚洲精品69| 亚洲一区二区三区四区不卡| 久久久精品国产一区二区三区| 99热这里只有精品在线观看| 亚洲午夜伦理| 日韩电影第一页| 欧美在线观看视频网站| 999精品网| 久久色.com| 精品一区二区视频| 在线观看不卡的av| 女生裸体视频一区二区三区| 亚洲成人av片在线观看| 无遮挡又爽又刺激的视频| 91porn在线观看| 国产美女一区二区三区| 国产精品专区h在线观看| 国产免费美女视频| 中文在线综合| 91精品91久久久中77777| 免费黄色福利视频| 日本综合字幕| 一区二区三区.www| 欧美日韩精品免费在线观看视频| 中文字幕+乱码+中文乱码www| 欧美国产三级| 欧美激情视频免费观看| 亚洲精品国产一区黑色丝袜| 黑丝美女一区二区| 日韩免费看网站| 91激情视频在线| 在线观看小视频| 亚洲国产精品影院| 九一国产精品视频| 欧美激情午夜| 久久一区二区视频| 日韩精品欧美专区| 污污网站在线免费观看| 国产一区二区女| 成人9ⅰ免费影视网站| 天天干天天舔天天射| 国产乱码精品一区二区三| 热re91久久精品国99热蜜臀| 九九热精彩视频| 91中文字幕精品永久在线| 久久精品最新地址| 扒开jk护士狂揉免费| 嗯用力啊快一点好舒服小柔久久| 欧美人妇做爰xxxⅹ性高电影| 日韩av黄色网址| 69堂免费精品视频在线播放| 中文字幕欧美一| 欧美日韩一区二区三区在线视频| av在线日韩国产精品| 91亚洲精品一区二区乱码| 亚洲综合日韩在线| 97精品久久人人爽人人爽| 国产69精品久久99不卡| 国产欧美 在线欧美| 国产91麻豆视频| 国产精品资源站在线| 国产精品久久一区二区三区| 中文字幕一区二区三区人妻四季 | 国产精品美女午夜av| 亚洲xxx在线| 精品午夜久久福利影院| 国产精品高清网站| 亚洲GV成人无码久久精品| 欧美日韩国产高清| 久久综合伊人77777尤物| 免费看污片网站| 女生裸体视频一区二区三区| 国产精品国产亚洲伊人久久| 丰满熟妇乱又伦| 国产精品色哟哟网站| 日韩小视频在线播放| 国产一区二区三区免费在线| 欧美日韩大陆一区二区| 久久人妻一区二区| 三级精品视频| 久久夜色撩人精品| 中文字幕 国产精品| 99免费精品视频| 精品国产区在线| 在线观看免费视频你懂的| 欧美日韩在线精品一区二区三区激情 | 国产91porn| 欧美被日视频| 一本一本大道香蕉久在线精品| 日日碰狠狠添天天爽超碰97| 少妇视频一区| 精品剧情在线观看| 男人的天堂久久久| 亚洲特色特黄| 97人人干人人| 天天干视频在线| 亚洲精品乱码久久久久久| 久久精品xxx| 理论不卡电影大全神| 日韩三级.com| 国产va在线播放| 一本色道久久综合| 国产成人高潮免费观看精品| 91精品国产色综合久久不8| 国产亚洲精品aa午夜观看| 一区二区精品国产| 久久国内精品| 精品久久国产97色综合| 一区视频免费观看| 国产河南妇女毛片精品久久久 | 亚洲人成网站在线| 欧美少妇在线观看| 亚洲网站免费| 精品爽片免费看久久| 欧美自拍偷拍网| 国产一区久久| 国产98在线|日韩| 91在线品视觉盛宴免费| 欧美亚洲禁片免费| 久久国产劲爆∧v内射| 国内成人在线| 国产在线一区二区三区欧美| 天堂电影一区| 91精品国产高清一区二区三区| 国产精品一区二区入口九绯色| 欧美国产一区二区三区激情无套| 国产视频福利一区| 五月婷婷六月丁香综合| 欧美午夜精品在线| 91人人澡人人爽| 不卡在线一区| **欧美日韩vr在线| 国产熟女精品视频| 亚洲一二三专区| 91久久免费视频| 九九九久久久精品| 日本一区二区三区视频免费看| 中文字幕有码在线视频| 337p日本欧洲亚洲大胆精品| 久草手机视频在线观看| 国产精品香蕉一区二区三区| www插插插无码视频网站| 国产美女精品视频免费播放软件| 欧美猛男性生活免费| 中文字幕+乱码+中文| 亚洲欧美国产77777| 蜜臀av免费观看| 欧美男gay| 亚洲www在线| 麻豆免费在线| 久久伊人精品一区二区三区| 亚洲人视频在线观看| 欧美日韩极品在线观看一区| 日韩xxxxxxxxx| 岛国精品在线播放| 色一情一乱一乱一区91| 日韩一级电影| 91亚洲一区精品| 国产网友自拍视频导航网站在线观看| 欧美在线免费视屏| 亚洲成人网在线播放| 国内外成人在线| 成年人免费在线播放| 天堂综合网久久| 91在线无精精品一区二区| japanese23hdxxxx日韩| 欧美激情videoshd| 在线观看完整版免费| 日韩成人在线视频| 精品久久久久成人码免费动漫| 亚洲三级电影全部在线观看高清| 在线观看日韩精品视频| 国产精品综合久久| 五月天婷婷亚洲| 国产高清一区| 国产精品国产三级国产专区53 | 久久久xxx| 欧美久久在线观看| 91精品国产91久久综合| 成人在线小视频| 婷婷激情一区| 2019中文字幕在线| 国产理论电影在线| 国产视频精品一区二区三区| 亚洲成人77777| 欧美一级二级在线观看| 亚洲天堂视频在线| 色哟哟亚洲精品| 99久热在线精品996热是什么| 26uuu精品一区二区| 国偷自产av一区二区三区麻豆| 久久国产精品免费| 欧美美女性视频| 美美哒免费高清在线观看视频一区二区 | 91色在线porny| 精品熟女一区二区三区| 久久午夜视频| 在线无限看免费粉色视频| 天堂精品久久久久| 91嫩草在线视频| 99热这里有精品| 成人欧美一区二区三区在线| а√在线天堂官网| 一区二区三区 在线观看视| 天堂av在线资源| 欧美丰满高潮xxxx喷水动漫| 国产无精乱码一区二区三区| 久久久高清一区二区三区| 性久久久久久久久久久久久久| 亚洲一区二区动漫| 日韩欧美一区二| 男人的天堂亚洲在线| 黄色av免费在线播放| 蜜桃视频一区二区三区| 男女超爽视频免费播放| 一本色道精品久久一区二区三区 | 美女精品自拍一二三四| 一区二区xxx| 国内久久精品视频| 国产a√精品区二区三区四区| 白白色 亚洲乱淫| 成人午夜剧场视频网站| 国产精品欧美一级免费| 91嫩草丨国产丨精品| 99re6这里只有精品视频在线观看| 天堂www中文在线资源| 2020国产精品自拍| 调教驯服丰满美艳麻麻在线视频| 成人h版在线观看| 欧美国产日韩在线视频| 成人综合婷婷国产精品久久蜜臀| 亚洲av成人片色在线观看高潮| 久久亚洲精华国产精华液| jizzjizz日本少妇| 亚洲一区影音先锋| 免费又黄又爽又猛大片午夜| 欧美久久免费观看| 国产 欧美 精品| 中文字幕日韩电影| 日韩亚洲视频在线观看| 亚洲精品在线免费观看视频| 午夜小视频免费| 色综合伊人色综合网站| 欧美色图另类| 精品亚洲精品福利线在观看| 成人激情电影在线看| 欧美猛男性生活免费| 桃子视频成人app| 欧美亚洲成人免费| 青青在线精品| 国语精品中文字幕| 欧美成人自拍| 亚洲中文字幕无码不卡电影| 国产精品一区三区| 色一情一交一乱一区二区三区| 一区二区欧美视频| 在线观看免费视频a| 亚洲精品中文字幕av| 黄色视屏免费在线观看| 日韩av片永久免费网站| 深夜激情久久| 亚洲人成77777| 男女av一区三区二区色多| 国产吃瓜黑料一区二区| 国产精品青草综合久久久久99| 日本系列第一页| 日韩一区二区三| 91在线网址| 国产成+人+综合+亚洲欧美丁香花| 亚洲国产一区二区三区网站| 日韩影视精品| 久久亚洲精选| 亚洲精品在线视频免费观看| 亚洲精品国产第一综合99久久 | 羞羞的视频在线看| 九九精品视频在线| 高清欧美日韩| 欧美一进一出视频| 日韩视频在线一区二区三区| aaaaa黄色片| 亚洲人吸女人奶水| 国产精品高潮呻吟av| 91精品国产乱| 欧美极品另类| 成人美女免费网站视频| 日韩精品影视| 国产毛片久久久久久国产毛片| 一本色道久久综合亚洲精品高清 | 亚洲 欧美 日韩 国产综合 在线| 国产成人午夜片在线观看高清观看| 国产精品18在线| 一区二区三区四区在线免费观看| 亚洲综合精品国产一区二区三区 | 91精品国产闺蜜国产在线闺蜜| 欧美日韩一级片网站| www日韩tube| 国产精品久久久久一区二区| 青青草原综合久久大伊人精品 | 丁香天五香天堂综合| 久久精品99国产精| 精品久久五月天| 2018av在线| 国产在线一区二| 国产精品普通话对白| 超碰97在线资源站| 大荫蒂欧美视频另类xxxx| 一区二区视频播放| 中文亚洲视频在线| 国产精品诱惑| japanese在线视频| 国产精品影视天天线| 日本少妇bbwbbw精品| 日韩成人中文字幕在线观看| 日韩电影免费看| 欧美精品与人动性物交免费看| 老司机精品久久| 免费看一级黄色| 91精品国产91久久久久久一区二区| 超碰在线caoporn| 国产精品电影网站| 93在线视频精品免费观看| 视频区 图片区 小说区| 亚洲一区二三区| 日本福利在线观看| 国产精品嫩草视频| 亚洲一区二区日韩| 亚洲免费看av| 亚洲欧美日韩国产综合在线| 狠狠躁夜夜躁av无码中文幕| 日本不卡视频在线播放| 久久在线电影| 在线xxxxx| 一区二区三区免费| 五月婷婷丁香六月| 国产日韩欧美在线视频观看| 欧美日韩国产成人精品| 高潮毛片无遮挡| 欧美一区二区在线免费观看| 91老司机福利在线| 亚洲成人a**址| 成人中文字幕在线| 久久国产香蕉视频| 亚洲小视频在线观看| 成av人片在线观看www| 日韩精品无码一区二区三区| 国产成人一级电影| 日韩xxx视频| 久久久在线观看| 美女福利一区| 成 年 人 黄 色 大 片大 全| 国产精品美女视频|