精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

中文字幕在线高清| 91在线观看喷潮| 亚洲精品国产setv| 欧美午夜电影一区| 无码人妻精品一区二区三区99v| 99riav国产| 亚洲一区二区毛片| 在线观看欧美日韩国产| 日韩成人av免费| 在线手机中文字幕| 亚洲三级免费电影| 精品91免费| 在线免费观看日韩视频| 激情欧美一区二区三区| 中国人与牲禽动交精品| 中文字幕国产高清| 中文字幕21页在线看| 中文字幕不卡的av| 国产一区高清视频| 国产精品久久久久久久免费看| 亚洲欧洲午夜| 久久这里只有精品视频首页| 五月婷婷综合在线观看| 精品一区二区三区免费看| 好吊成人免视频| 五月天婷亚洲天综合网鲁鲁鲁| 亚洲精品人妻无码| 蜜桃在线一区二区三区| 9.1国产丝袜在线观看| 黄色一级片中国| 日韩欧美一区二区三区免费看| 亚洲国产精品yw在线观看| 中文字幕国产传媒| 美女的胸无遮挡在线观看| 亚洲欧美日韩中文播放| 亚洲成人在线视频网站| 香蕉视频国产在线| 国产69精品久久久久毛片| 国产精品久久久久久久久久免费 | 99在线|亚洲一区二区| 日韩中文字幕在线观看| 真实乱视频国产免费观看| 欧美人与动xxxxz0oz| 日韩免费观看高清完整版 | 可以免费在线观看的av| 国产在线不卡| 免费91在线视频| 午夜爽爽爽男女免费观看| 日韩一区二区三区免费播放| 亚洲性生活视频| 黄免费在线观看| 蜜乳av综合| 国产亚洲福利一区| 波多野在线播放| jlzzjlzz亚洲女人| 中国日韩欧美久久久久久久久| 干b视频在线观看| 国产综合久久久| 国产一区二区三区视频免费| 免费黄色片网站| 禁断一区二区三区在线| 亚洲社区在线观看| 亚洲最大成人综合网| 奇米777国产一区国产二区| 欧美精品一区二区三区一线天视频 | 欧美精品一区二区三区视频| 国产伦精品一区二区三区88av| 97一区二区国产好的精华液| 亚洲精品一区二区三区福利| 在线观看国产免费视频| 国内毛片久久| 精品亚洲永久免费精品| 国产高清一区二区三区四区| 日韩国产一区二区| www.xxxx欧美| 九九热精品在线观看| 1024日韩| 日本亚洲欧洲色| 在线视频1卡二卡三卡| 国产高清在线观看免费不卡| 好看的日韩精品视频在线| 你懂的好爽在线观看| 国产视频911| 一本一道久久a久久精品综合| av片在线观看免费| 狠狠躁天天躁日日躁欧美| 欧美牲交a欧美牲交aⅴ免费真| 亚洲电影有码| 日韩免费视频一区| 无码一区二区三区在线| 国产精品毛片久久| 久久青草精品视频免费观看| www.日本精品| 久久国产免费看| 国产精品一区二区三区四区五区| 欧美色综合一区二区三区| 国产精品国产自产拍高清av| 久久人人爽人人爽人人av| 日韩免费福利视频| 日韩一区二区三区免费观看| 国产精品伦子伦| 99久久99视频只有精品| 午夜精品福利电影| 伊人精品在线视频| 成人免费高清视频在线观看| 日韩免费一区二区三区| 婷婷色在线资源| 欧美午夜一区二区| 日本人添下边视频免费| 久久久综合色| 欧美一级视频免费在线观看| 国产美女www爽爽爽视频| 久久日一线二线三线suv| 国产 国语对白 露脸| 国产另类xxxxhd高清| 精品91自产拍在线观看一区| 91麻豆免费视频网站| 久久精品官网| 激情视频一区二区| 中文字幕中文字幕在线中高清免费版| 在线观看视频一区二区 | 影音先锋国产在线| av在线一区二区三区| 手机成人av在线| 欧美成a人片在线观看久| 亚洲精品一区二区三区精华液| 婷婷激情四射网| 日本欧美一区二区三区乱码| 蜜桃麻豆www久久国产精品| 久久一卡二卡| 51精品国自产在线| 网爆门在线观看| 老司机午夜免费精品视频| 精品国产aⅴ麻豆| 久久大胆人体| 欧美成人video| 91插插插插插插| 麻豆精品新av中文字幕| 日韩中文一区| 影音成人av| 亚洲久久久久久久久久| 日韩精品成人在线| 成人综合在线观看| 国产精品视频网站在线观看| 99精品在线免费观看| 久久人人爽亚洲精品天堂| 中文字幕一区二区免费| 中文字幕va一区二区三区| 韩国中文字幕av| 成久久久网站| 国产精品一香蕉国产线看观看 | 99精品在免费线中文字幕网站一区| 久久精品视频导航| 国产sm主人调教女m视频| 亚洲视频一区二区在线| 两性午夜免费视频| 欧美片第1页综合| 国产精品国产亚洲精品看不卡15 | 日韩欧美在线国产| 成人乱码一区二区三区av| 美女精品在线| 午夜精品美女久久久久av福利| 亚洲电影有码| 插插插亚洲综合网| 国产偷人妻精品一区二区在线| 亚洲欧美日韩中文字幕一区二区三区 | 成人免费毛片东京热| 国产成人亚洲综合a∨婷婷| a级黄色片免费| 精品三级av在线导航| 欧美专区福利在线| 国产片在线观看| 欧美精品第一页| 精品小视频在线观看| 91麻豆精东视频| 一区二区三区 日韩| 亚洲一区二区三区| 国产嫩草一区二区三区在线观看| 亚洲精品mv| 久久精品99久久久久久久久| 蜜桃视频久久一区免费观看入口| 欧美性xxxxhd| 制服丨自拍丨欧美丨动漫丨| 国产成人自拍在线| av天堂永久资源网| 久久中文字幕av一区二区不卡| 亚洲bt天天射| 在线观看涩涩| 美女性感视频久久久| 天堂国产一区二区三区| 欧美在线观看视频一区二区三区| 国语对白在线播放| www国产精品av| 亚洲黄色片免费看| 亚洲尤物在线| 欧美一级特黄aaaaaa在线看片| 久久动漫网址| 91麻豆桃色免费看| 原纱央莉成人av片| 久久久黄色av| 精品电影在线| 精品国产91九色蝌蚪| 日本熟妇一区二区三区| 亚洲一区二区三区自拍| 亚洲色图日韩精品| 91网站在线观看视频| 天堂av2020| 久久九九精品| 成人性生活视频免费看| 欧美激情电影| 欧美午夜精品理论片a级大开眼界| 久久久久毛片免费观看| 国产成人精品久久亚洲高清不卡| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲最新av在线| 五月天婷婷在线观看| 日韩视频不卡中文| 伊人免费在线观看高清版| 天天综合日日夜夜精品| 青青草手机在线视频| 国产亚洲成av人在线观看导航 | 久久综合五月婷婷| 成人免费xxxxx在线观看| 欧美大片免费观看网址| 久久久免费电影| 亚洲大胆人体大胆做受1| 中文字幕日韩有码| 免费在线观看一级毛片| 精品盗摄一区二区三区| www.桃色av嫩草.com| 欧美日韩1区2区| 亚洲精品91天天久久人人| 懂色av影视一区二区三区| 久久精品99国产精| 亚洲免费高清视频在线| 中文字幕第69页| 国产精品天天摸av网| 国产aⅴ激情无码久久久无码| 99国产精品久| 中文字幕人妻一区二区三区| 国产91精品精华液一区二区三区| 手机在线播放av| 国产精品一区二区在线播放| 亚洲天堂网2018| 久久激情五月激情| 亚洲理论中文字幕| 黄色精品一二区| 三日本三级少妇三级99| 国产久卡久卡久卡久卡视频精品| 日本一本在线视频| 国产经典欧美精品| 香蕉在线观看视频| 不卡电影免费在线播放一区| 水蜜桃av无码| 91丝袜美腿高跟国产极品老师| 超碰97在线资源站| 久久综合一区二区| 精品无码国产污污污免费网站| 国产丝袜美腿一区二区三区| 黄色免费一级视频| 亚洲日本电影在线| 久草福利资源在线观看| 亚洲成人综合视频| 影音先锋在线国产| 在线免费观看日本欧美| 一本大道伊人av久久综合| 91 com成人网| 国产 欧美 精品| 精品亚洲一区二区三区| av网站大全在线观看| 毛片精品免费在线观看| 999福利在线视频| 日韩美女视频免费在线观看| 小说区图片区亚洲| www国产亚洲精品| 九九综合九九| 国产又黄又爽免费视频| 黑人一区二区| 欧美日韩在线不卡视频| 韩国午夜理伦三级不卡影院| 精品人妻一区二区免费| 久久精品欧美一区二区三区不卡| 亚洲欧美精品久久| 亚洲v日本v欧美v久久精品| 久久青青草原亚洲av无码麻豆| 欧美日韩情趣电影| 隣の若妻さん波多野结衣| 亚洲色图校园春色| 色呦呦呦在线观看| 国产91在线播放九色快色| 成人黄色91| 麻豆av一区二区三区| 日韩一区二区在线免费| 欧美 日韩 亚洲 一区| 麻豆精品国产传媒mv男同| 99riav国产精品视频| 日本一区二区三区久久久久久久久不 | 一本之道在线视频| 久久免费看少妇高潮| 成人性生活毛片| 日本韩国一区二区三区视频| www视频在线| 中文字幕精品www乱入免费视频| 日韩电影免费观看| 国产精品免费看久久久香蕉| 成人动态视频| 欧美性视频在线播放| 久久福利毛片| 午夜xxxxx| 国产欧美日韩在线观看| 久久精品国产亚洲av麻豆色欲| 欧美日韩一区不卡| 香蕉视频黄在线观看| 欧美高清第一页| 9999精品免费视频| 日韩高清国产精品| 日韩视频精品在线观看| 色哟哟在线观看视频| 国产精品久久看| 在线免费观看国产精品| 亚洲精品久久久久中文字幕二区| 亚洲第一图区| 91欧美激情另类亚洲| 日韩精品一区二区三区免费观影| 凹凸国产熟女精品视频| 成人一区二区三区视频 | 在线看片日韩| 国产老头和老头xxxx×| 1024精品合集| 亚洲天堂777| 搡老女人一区二区三区视频tv| 欧美与亚洲与日本直播| 欧美日韩最好看的视频| 一区二区三区成人精品| 亚洲激情 欧美| 亚洲国产精品久久久久婷婷884| www.蜜臀av| 九九九热精品免费视频观看网站| 国产一区二区三区免费在线| 樱花www成人免费视频| 久久精品国产99国产精品| 永久免费毛片在线观看| 欧美性猛交xxxxxx富婆| а天堂8中文最新版在线官网| 国产成人高清激情视频在线观看| 亚洲素人在线| 最近免费中文字幕中文高清百度| 久久这里只精品最新地址| 4438国产精品一区二区| 亚洲欧美在线磁力| 怡红院成人在线| 亚洲高清不卡一区| 视频一区在线视频| 91l九色lporny| 欧美日韩一区二区不卡| 老司机免费在线视频| 91亚洲永久免费精品| 欧美精品大片| 动漫美女无遮挡免费| 欧美日韩精品在线| 狠狠狠综合7777久夜色撩人 | 美女黄页在线观看| 日韩天堂在线视频| 精品精品视频| 日韩精品在线中文字幕| 久久免费精品国产久精品久久久久| 国产精品视频一区在线观看| 中文字幕亚洲综合久久| 粉嫩av国产一区二区三区| a级免费在线观看| 久久婷婷综合激情| 日韩福利视频在线| 成人一区福利| 91久久久免费一区二区| 亚洲涩涩在线观看| 中文字幕日韩一区| 亚洲成a人片在线| 欧美亚洲视频一区二区| 国产一区国产二区国产三区| 久久久久久久久久一区| 午夜精品一区二区三区电影天堂 | 日日噜噜噜噜人人爽亚洲精品| 亚洲性猛交xxxxwww| 国产一区 二区| 97成人在线免费视频| 欧美国产成人精品| 国产黄色小视频在线观看| 欧美自拍大量在线观看| 色天天综合网| 亚洲一级av无码毛片精品| 欧美日韩精品欧美日韩精品一| 免费在线中文字幕| 欧美一区二区三区四区夜夜大片| 国模娜娜一区二区三区| 国产精品一区二区三区四| 久久久国产一区二区| 欧美猛男同性videos| 中文写幕一区二区三区免费观成熟| 色综合中文综合网| 日本aa在线|