ネイルモニタリングサービス

リクエストのインポート
インポートOS
インポート時
のインポートJSON
psutilインポート
インポートソケット
しばらく真:
#ローカルコンピュータ名へのアクセス
ホスト名= socket.gethostname()
ローカルIPへの#アクセス
IP = socket.gethostbyname(ホスト名)
TIME_NOW time.strftime =(「Yの% - M-%D %% H:%はM:%のS ')
URL =' https://oapi.dingtalk.com/robot/send?access_token=91a38bc1a6afc21b23bf450a058baa9baa6d3beb7fcad1b431db18c97c258ce4 '
DEFプロセス():
proc_dict = {}
たproc_name = SET( )
サービスを監視する#を設定
monitor_name = { 'のhttpd'}
サービス監視する#
= { ' 'のhttpd'サーバーのhttpdを起動systemctl'}を
(ATTRSの= [ 'PID'、 '名称'])のためpsutil.process_iterにおけるP
#1 psutil.process_iter:プロセス名およびIDの全て洗浄するオペレーティング・システムを返し
proc_dictを[p.info [ 'PID'] = p.info [ '名前']
proc_name.add(p.info [ '名前'])
proc_stop = monitor_name -たproc_name
'' '>>> A = {' 1 '} >>> B = {' 2」、 '3'、。 4 ''} >>> - B { '1'} モニタリングサービスにに-デッドサービスシステム= '' '
IF proc_stop:
P1のためproc_stopで:
p_status ='停止」
データ= { "のMsgType":「テキスト""テキスト":{"コンテンツ":" ホストIP:%S \ Nサービス:%S \ Nステータス:%S \ n%sの" %(IP、P1、p_status、TIME_NOW)}、"「で:{ "atMobiles":[]、 "isAtAll" FALSE}}
ヘッダー= { "コンテンツタイプ": "ファイルアプリケーション/ JSON"、 "Chartset": "UTF-8"}
文字列形式JSONにデータ
= SEND_DATA(データ)json.dumps
ポスト要求は、インターフェースネイル要求するために送信されます。#
レスポンス= requests.post(URL = URL、ヘッダ=ヘッダを、SEND_DATA =データ)
#は、成功したデータの後にストレスを返し
= response.contentコンテンツ。デコード()
os.system(サーバー[P1])
proc_a = SET()
psutil.process_iterにおけるIため(ATTRSの= [ 'PID'、 '名称']):
proc_a.add(i.info [ '名前'])
:proc_aでP1 IF
p_status = 'スタート'
データ= { "のMsgType": "ホストのIP ::%sの\ nはサービス:%sの\ n個の状態:"テキスト""テキスト" :{"コンテンツ「%sの\ nは%S "%(IP、P1 、p_status、TIME_NOW)}"で"{"atMobiles ":[]、 "isAtAll":偽}}
= SEND_DATAをjson.dumps(データ)
の対応= requests.post(URL = URL、ヘッダ=ヘッダ、SEND_DATA =データ)
内容= response.content.decode()

他:
p_status = '停止'
このメッセージタイプのデータ=#{固定されたテキスト
"のMsgType": "テキスト"、 "テキスト":{#メッセージ内容
"コンテンツ": "ホストIP:%S \ Nサービス:%S \ Nステータス:%S \ n%sの" %(IP 、P1、p_status、TIME_NOW)}、
"AT":{#@人の電話番号が
"atMobiles":[]、 "isAtAll"}}偽
SEND_DATA =のjson.dumps(データ)
の対応=要求。ポスト(URL = urlには、ヘッダ=ヘッダ、データ= SEND_DATA)
コンテンツ= response.content.decode()

time.sleep(5)
工程()

おすすめ

転載: www.cnblogs.com/ZZYMiss/p/11502584.html