13. 自動化運維——批量關閉tomcat服務
生產環境中往往在多臺機器上執行同一個服務(tomcat),本案例的需求是批量關閉這多臺機器上的tomcat服務。假設以下場景:
1)提供一個機器IP和tomcat使用者的密碼列表(/data/ip-passwd.txt),格式如下:
10.111.22.101 passwd1
10.111.22.102 passwd2
10.111.22.103 passwd3
...
2)tomcat所在路徑是 /opt/tomcat/ ;
3)關閉tomcat服務的命令是 /opt/tomcat/bin/shutdown.sh ;
4)遠端機器上只有tomcat一個java應用,即程式java只是關於tomcat的。
參考指令碼如下:
#!/bin/bash
#批量關閉遠端機器上的tomcat服務
ipfile=/data/ip-passwd.txt
cat >> kill_tomcat.exp << EOF
#!/usr/bin/expect
set passwd [lindex \$argv 0]
set host [lindex \$argv 1]
spawn ssh tomcat@\$host
expect{
"yes/no" { send "yes\r"; exp_continue} # \r表示回車;exp_continue表示再一次互動
"password:" { send "\$passwd\r" }
}
expect "]*"
send "/opt/tomcat/bin/shutdown.sh\r"
expect "]*"
send "if ps aux |grep -q tomcat;then killall -9 java;fi"
expect "]*"
send "exit\r"
expect eof
EOF
chmod a+x kill_tomcat.exp
cat $ipfile |while read line
do
ip=`echo $line |awk '{print $1}'`
pw=`echo $file |awk '{print $2}'`
./kill_tomcat.exp $pw $ip
done
指令碼中,
-
expect指令碼中,set設定變數,spawn後面跟要執行的命令
-
expect指令碼中,第一個引數用[lindex $argv 0]表示,第二個引數用[lindex $argv 1]表示,依次類推
-
]* 匹配 ]# 和 ]$ ,不管是root使用者還是普通使用者
相關文章
- IT運維之自動化運維運維
- 自動化批量管理工具pssh - 運維小結運維
- win10 自動更新如何關閉_win10關閉自動更新服務步驟Win10
- 自動化運維 Expect運維
- 用自動化運維工具解放IT運維運維
- 關於自動化運維的思考-基線運維
- 自動化批量管理工具salt-ssh - 運維小結運維
- 利用python實現批量自動化運維指令碼案例薦Python運維指令碼
- 自動化運維 Ansible運維
- IT運維支援如何轉化為服務運維
- Win10如何關閉自動維護 win10系統關閉自動維護的方法Win10
- mysql-inception自動化運維MySql運維
- Ansible自動化運維工具運維
- Cobbler自動化批量安裝Linux作業系統 - 運維總結Linux作業系統運維
- 簡化IT運維工作,就要學會使用自動化運維工具!運維
- 騰訊雲Kafka海量服務自動化運營實踐Kafka
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- ansible自動化運維入門運維
- 自動化運維工具之Puppet模組運維
- 自動化運維的快速演進運維
- 自動化運維的發展方向運維
- 分層運維自動化監控運維
- ORA-07445處理分析 關閉自動化任務
- win10 自動維護如何關掉_win10自動維護怎麼關閉Win10
- 指標是構築自動化運維與智慧化運維的基石指標運維
- 自動化運維,國產化信創替代方案運維
- IMUSTOJ運維——批量自動化生成題目測試資料運維
- 分析服務打造數智化運營閉環方案
- win10 維護怎麼關閉_win10自動維護要怎麼關閉Win10
- 論IT運維自動化的重要性運維
- 自動化運維工具Ansible介紹運維
- Python自動化運維之IPy模組Python運維
- ansible自動化運維資料庫運維資料庫
- 有贊MySQL自動化運維之路—ZanDBMySql運維
- MySQL自動化運維之安裝篇MySql運維
- 自動化運維工具SaltStack詳細部署運維
- 運維自動化之賬單系統運維
- IT運維和自動化運維以及運維開發有啥不同?能解釋下嗎?運維