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 批量修改密碼密碼
- ansible 修改密碼密碼
- Ubuntu 修改密碼Ubuntu密碼
- shell+expect建立多個節點無密碼ssh密碼
- 公司網站密碼怎麼修改?修改密碼網站?網站密碼
- unity 程式碼批量修改Remove Missing Script和批量修改指定元件的內容UnityREM元件
- Mendix 修改pg密碼密碼
- 批量修改檔名的bash指令碼指令碼
- 批量修改OC類名指令碼 -- python指令碼Python
- 修改帝國網站登入密碼?網站被人修改了密碼?網站密碼
- 修改 MySQL 登入密碼MySql密碼
- mysql8.0修改密碼MySql密碼
- Sqlserver修改連線密碼SQLServer密碼
- iOS使用shell指令碼批量修改屬性iOS指令碼
- 修改git使用者密碼Git密碼
- 修改docker中Mysql的密碼DockerMySql密碼
- OEM13.2修改SYSMAN密碼密碼
- 修改BeEF工具預設密碼密碼
- Jupyter Notebook修改登陸密碼密碼
- 寶塔如何修改FTP密碼FTP密碼
- php網站admin密碼修改?PHP網站密碼
- 修改Mysql root密碼的方法MySql密碼
- ubuntu系統下mysql重置密碼和修改密碼操作UbuntuMySql密碼
- MySQL8.0 忘記 root 密碼下如何修改密碼MySql密碼
- iOS使用Shell指令碼批量修改類名稱iOS指令碼
- mysql 8.0.11 以上版本修改root密碼MySql密碼
- MySQL 8.0之後版本密碼修改MySql密碼
- laravel 傳送郵件修改密碼Laravel密碼
- 銀河麒麟命令列修改密碼命令列密碼
- 實用小技巧! 修改MySQL密碼MySql密碼
- 在Linux中修改MySQL的密碼LinuxMySql密碼
- 怎樣修改網站管理密碼?網站密碼
- 公司怎麼修改網站密碼網站密碼
- ubuntu安裝mysql後修改密碼UbuntuMySql密碼
- MySQL修改密碼方法總結YRMySql密碼
- 修改MySQL密碼的四種方法MySql密碼
- MYSQL5.7 ROOT密碼修改教程MySql密碼
- MySQL修改賬號密碼方法大全MySql密碼
- java批量修改檔名Java