不知道是幹什麼的指令碼
點選(此處)摺疊或開啟
-
#!/usr/bin/env python
-
-
import commands
-
import sys
-
import json
-
-
def help():
-
print "help:"
-
-
def tomcat_jstat(pro_name):
-
process_st=commands.getoutput("ps -ef|grep %s|grep -v get_java_jstat.py|grep -v grep>/dev/null;echo $?" % pro_name)
-
if process_st == '0':
-
PID=commands.getoutput("ps -ef|grep java|grep tomcat|grep -v get_java_jstat.py|grep %s|grep -v grep|awk '{print $2}'" %
-
pro_name)
-
jstat=commands.getoutput("ps -ef|grep java|grep tomcat|grep -v get_java_jstat.py|grep %s|awk '{print $8}'|grep -v grep|
-
grep -v sh|awk -F'java$' '{print $1\"jstat\"}'" % pro_name).replace('\t','').replace('\n','').replace(' ','')
-
tomcat_user1=commands.getoutput("ps -ef|grep java|grep tomcat|grep -v get_java_jstat.py|grep %s|grep -v grep|awk '{prin
-
t $1}'" % pro_name).strip()
-
tomcat_user=commands.getoutput("grep %s /etc/passwd|grep -v grep|awk -F\: '{print $1}'" % tomcat_user1).strip()
-
if PID and jstat and tomcat_user:
-
if tomcat_user == 'app':
-
jstat_keys=commands.getoutput("%s -gcutil %s|head -n 1" % (jstat,PID)).split()
-
jstat_values=commands.getoutput("%s -gcutil %s|tail -n 1" % (jstat,PID)).split()
-
else:
-
jstat_keys=commands.getoutput("su - %s -c '%s -gcutil %s|head -n 1'" % (tomcat_user,jstat,PID)).split()
-
jstat_values=commands.getoutput("su - %s -c '%s -gcutil %s|tail -n 1'" % (tomcat_user,jstat,PID)).split()
-
jstat_infos=dict(zip(jstat_keys,jstat_values))
-
return jstat_infos
-
else:
-
return 0
-
else:
-
return 0
-
-
def get_tomcat_projects():
-
tomcat_users=commands.getoutput("ps -ef|grep java|grep tomcat|grep -v watchdog|grep -v javathreads|grep -v 'kill -9'|grep -
-
v grep|awk '{print $1}'|sort|uniq").split()
-
tomcat_projects=[]
-
for tomcat_user in tomcat_users:
-
if tomcat_user == 'app':
-
tomcat_project=commands.getoutput("ps -ef|grep java|grep -v watchdog|grep -v javathreads|grep -v 'kill -9'|grep -v
-
grep|awk -F'app' '{print $3}'|awk -F\/ '{print $2}'").split('\n')
-
tomcat_projects=tomcat_projects + tomcat_project
-
else:
-
tomcat_project=commands.getoutput("ps -ef|grep java|grep -v watchdog|grep -v javathreads|grep -v 'kill -9'|grep -v
-
grep|awk -F'app' '{print $2}'|awk -F\/ '{print $2}'").split('\n')
-
tomcat_projects=tomcat_projects + tomcat_project
-
tomcat_projects=list(set(tomcat_projects))
-
while '' in tomcat_projects:
-
tomcat_projects.remove('')
-
if len(tomcat_projects) != 0:
-
return tomcat_projects
-
else:
-
return 0
-
-
if __name__ == "__main__":
-
#pro_name=sys.argv[1]
-
pro_names=get_tomcat_projects()
-
if len(pro_names) != 0:
-
#print pro_names
-
for pro_name in pro_names:
-
#print pro_name
-
jstat_file="/opt/zabbix/script/jstat_%s.txt" % pro_name
-
with open(jstat_file,"w") as f:
- json.dump(tomcat_jstat(pro_name),f)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442725/viewspace-2142229/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PS指令碼篇--1.程式碼是什麼,寫程式碼幹嘛?指令碼
- 什麼是Shell指令碼?指令碼
- 不知道各位用 rust 幹什麼Rust
- 什麼是eval()?eval是用來幹什麼的?
- nginx 是什麼,能幹什麼?Nginx
- Java是什麼?主要是幹什麼的?Java
- Web前端是什麼?主要是幹什麼的Web前端
- 什麼是Docker?Docker可以幹什麼?Docker
- web assembly是什麼,能幹什麼Web
- npm 是幹什麼的?(非教程)NPM
- Java是用來幹什麼的?Java
- CRM系統是幹什麼的?
- 絕緣粒是幹什麼的
- 軟體測試是幹什麼的
- Python是什麼意思?Python幹什麼用的?Python
- JS 的 new 到底是幹什麼的?JS
- 什麼是微服務,它要幹啥微服務
- 大資料開發是幹什麼的?大資料
- 大資料具體是幹什麼的大資料
- 通俗理解鴨子型別是幹什麼的型別
- 阿里雲到底是幹什麼的阿里
- 爬蟲工程師是幹什麼的爬蟲工程師
- 什麼是指令重排?
- 駭客偷你的密碼幹什麼?密碼
- 黑客偷你的密碼幹什麼?黑客密碼
- ftp,ftp是幹什麼的,怎麼運用呢?FTP
- 什麼是shell指令碼?Linux為什麼學習shell?指令碼Linux
- 國外遊戲文案到底是幹什麼的?遊戲
- app超級簽名是幹什麼用的?APP
- 大資料到底是幹什麼用的?大資料
- axure是什麼軟體幹什麼的 axure怎麼用有哪些功能
- Python中的.pyc檔案是幹什麼的Python
- Web前端是幹什麼的?和後端是啥關係?Web前端後端
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- 你所寫過的最好的Python指令碼是什麼?Python指令碼
- JWT能夠幹什麼,不應該幹什麼?JWT
- DDD中實體與值物件是幹什麼的物件
- 【知識分享】伺服器是幹什麼用的伺服器