expect批量修改密碼
在工作過程中經常需要批量對多臺機器進行操作,如果每臺都手動操作那效率實在是太低了。這時就需要一種自動互動的方式對若干臺機器進行批量處理,expect就扮演著這樣一種角色。本文以批量修改密碼為例淺談expect的用法。Expect需要Tcl程式語言的支援,首先需要確定機器安裝有expect,tcl。
[root@rac1 scripts]# rpm -qa|grep tcl
tcl-8.4.13-4.el5
tclx-8.4.0-5.fc6
[root@rac1 scripts]# rpm -qa|grep expect
expectk-5.43.0-5.1
expect-devel-5.43.0-5.1
expect-5.43.0-5.1
以上顯示說明該機器裝有expect和tcl
以下是批量修改密碼指令碼
用whereis expect確定expect位置
[root@rac1 ~]# whereis expect
expect: /usr/bin/expect
#!/usr/bin/expect
#設定變數
set timeout 10
set USERNAME etnet
set PASSWORD 123456
#一個迴圈,說明對哪些機器進行操作
foreach host {
192.168.151.89
192.168.151.90
} {
spawn ssh
[root@rac1 scripts]# rpm -qa|grep tcl
tcl-8.4.13-4.el5
tclx-8.4.0-5.fc6
[root@rac1 scripts]# rpm -qa|grep expect
expectk-5.43.0-5.1
expect-devel-5.43.0-5.1
expect-5.43.0-5.1
以上顯示說明該機器裝有expect和tcl
以下是批量修改密碼指令碼
用whereis expect確定expect位置
[root@rac1 ~]# whereis expect
expect: /usr/bin/expect
#!/usr/bin/expect
#設定變數
set timeout 10
set USERNAME etnet
set PASSWORD 123456
#一個迴圈,說明對哪些機器進行操作
foreach host {
192.168.151.89
192.168.151.90
} {
spawn ssh
-l root ${host}
#ssh首次登陸的驗證,exp_continue會繼續執行下一迴圈
expect {
"no)?" {send "yes\r";exp_continue}
"password:" {send "123456\r"}
}
#每個expect捕獲一個提示符,send傳送一條命令,命令以\r結尾。
expect "]*"
send "passwd ${USERNAME}\r"
expect "password:"
send "${PASSWORD}\r"
expect "password:"
send "${PASSWORD}\r"
expect "]*"
send "exit\r"
}
#ssh首次登陸的驗證,exp_continue會繼續執行下一迴圈
expect {
"no)?" {send "yes\r";exp_continue}
"password:" {send "123456\r"}
}
#每個expect捕獲一個提示符,send傳送一條命令,命令以\r結尾。
expect "]*"
send "passwd ${USERNAME}\r"
expect "password:"
send "${PASSWORD}\r"
expect "password:"
send "${PASSWORD}\r"
expect "]*"
send "exit\r"
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-775806/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- chpasswd 批量修改密碼密碼
- linux下批量修改使用者密碼Linux密碼
- Ubuntu 修改密碼Ubuntu密碼
- 修改ftp密碼FTP密碼
- shell+expect建立多個節點無密碼ssh密碼
- 公司網站密碼怎麼修改?修改密碼網站?網站密碼
- mysql 忘記密碼,mysql修改密碼MySql密碼
- 批量修改檔案的編碼
- 通過expect實現ssh協議自動輸密碼協議密碼
- mysql修改root密碼MySql密碼
- Git-修改密碼Git密碼
- 修改mysql root密碼MySql密碼
- ansible 修改密碼密碼
- Mendix 修改pg密碼密碼
- MYSQL修改密碼和忘記ROOT密碼MySql密碼
- unity 程式碼批量修改Remove Missing Script和批量修改指定元件的內容UnityREM元件
- 批量修改檔名的bash指令碼指令碼
- 修改帝國網站登入密碼?網站被人修改了密碼?網站密碼
- mysql8.0修改密碼MySql密碼
- 修改 MySQL 登入密碼MySql密碼
- 密碼修改最佳實踐密碼
- 修改圖靈社群密碼圖靈密碼
- mysql修改管理員密碼MySql密碼
- BIEE-修改bisystemuser密碼密碼
- 修改mysql的root密碼MySql密碼
- esxi6 修改密碼密碼
- 修改ASM的SYS密碼ASM密碼
- redhat linux密碼修改RedhatLinux密碼
- EBS修改APPLSYSPUB密碼APP密碼
- Sqlserver修改連線密碼SQLServer密碼
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- 批量生成卡號密碼的php程式密碼PHP
- scp後臺靜默執行(使用expect自動輸入密碼)密碼
- iOS使用shell指令碼批量修改屬性iOS指令碼
- 批量修改OC類名指令碼 -- python指令碼Python
- 修改BeEF工具預設密碼密碼
- 修改Mysql root密碼的方法MySql密碼
- OEM13.2修改SYSMAN密碼密碼