自動化啟動服務

2022-07-30 11:51:11 字數 4686 閱讀 9518

import

osimport

sysimport

time

from _utils.patrol2 import

run_cmd

import

platform

defget_linux_status(start_port):

status_cmd = "

netstat -anp |grep listen | grep %s |awk '' |awk -f'/' ''| wc -l

"%start_port

port_cmd = "

netstat -anp |grep listen | grep %s |awk '' |awk -f'/' ''

" %start_port

print

"\n################################ automation ################################

"print

"檢查服務狀態:{}

".format(status_cmd)

print

"################################ automation ################################

"code,output =run_cmd(status_cmd)

code,output1 =run_cmd(port_cmd)

if int(output.strip()) ==0:

return false,output1 #

異常elif int(output.strip()) >= 1:

return true,output1 #

執行中def

get_windows_port(start_port):

cmd='

netstat -ano | findstr {}

'.format(start_port)

print

cmd doce,ret =run_cmd(cmd)if'

%s' %(start_port) in

ret:

print

"{}查詢埠存在服務執行中...

".format(start_port)

output = false #

服務執行中 已開啟 異常

else

:

print

"{}查詢端存在...

".format(start_port)

output = true #

服務斷開 未開啟 正常

#sys.exit(1)

return

output

defstart_status(start_port,time_num):

#迴圈環判斷服務是否停止成功,當前設定3,理論上最多會出現30次 "服務正在停止......

flag = 1

while flag

ifget_windows_port(start_port):

print

"{}服務正在啟動...

".format(service_name)

flag+=1time.sleep(10)

else

:

print

"{}服務已執行......

".format(service_name)

break

#print "{} 服務停止失敗".format(service_name)

#sys.exit(1)

'''*****************************

開啟服務 路徑檔案的結合 例如:/bin/start.sh

*****************************

'''def

start(user,start_script_path,service_name, start_port,start_script,time_num,common_start_server):

if sys.platform.startswith('

win'

):

ifget_windows_port(start_port):

ifcommon_start_server:

cmd = "

net start %s

" %common_start_server

code,output =run_cmd(cmd)

if code ==0:

print

"%s執行開啟命令成功

" %cmd

time.sleep(5)

start_status(start_port,time_num)

#迴圈環判斷服務是否停止成功

else

:

print

"執行開啟命令失敗退出

"sys.exit(1)

else

: os.chdir("%s

" %start_script_path)

start_cmd = '{}'

.format(start_script)

print

"執行開啟服務:{}

".format(start_cmd)

code,output =run_cmd(start_cmd)

if code ==0:

print

"執行開啟命令成功

"start_status(start_port,time_num)

#迴圈環判斷服務是否停止成功

else

:

print

"執行開啟命令失敗退出

"sys.exit(1)

else

:

print

"{} 服務正執行,請確認

".format(service_name)

sys.exit(1)

elif sys.platform.startswith('

linux'):

if get_linux_status(start_port)[0]:#

服務存在

print

"{} 服務已執行,請確認

".format(service_name)

sys.exit(1)

else

:

print

"服務已停止,開始執行開啟服務

"start_script_path_1 =os.path.join(start_script_path, start_script)

stop_cmd = "

su - %s -c 'sh %s &'

" %(user, start_script_path_1)

print

"執行開啟服務:{}

".format(stop_cmd)

code,output =run_cmd(stop_cmd)

if code ==0:

print

"執行開啟命令成功

"time.sleep(10)

ifget_linux_status(start_port)[0]:

print

"服務啟動成功"#

print

#print "存在pid, 正在執行命名殺死pid..."

#rets = get_linux_status(start_port)[1]

#for i in rets.split():

#cmd = 'kill -9 %s'%i

#code,output1 = run_cmd(cmd)

#print "刪除{} pid埠號為:{}".format(service_name,i)

##stop_status(start_port,time_num)

#if get_linux_status(start_port)[0]:

#print "{}服務已停止".format(service_name)

#else:

#print "{}服務停止失敗,請檢視".format(service_name)

#sys.exit(1)

else

:

print

"{}服務啟動失敗

".format(service_name)

else

:

print

"執行關閉命令失敗退出

"sys.exit(1)

if__name__ == "

__main__":

##替換當前服務名稱到service_name

print

start_script_path

start(user,start_script_path,service_name, start_port,start_script,time_num,common_start_server)

啟動的要求 和停止的要求一樣  

上述引數的輸入

自動化 dhcp服務

三.搭建dhcp服務 通過dhcp獲取指定位址 網路配置 靜態指定 動態獲取 bootp boot protocol mac與ip一一靜態對應 dhcp 增強的bootp,動態 dhcp dynamic host configuration protocol dhcp動態主機配置協議 67伺服器端口...

Appium python自動化啟動app

開啟夜神模擬器,開啟cmd,執行指令 nox adb.exe connect 127.0.0.1 62001和指令adb devices檢視裝置名。裝置名 127.0.0.1 62001,記錄裝置名,後面 需要用到。3 python desired caps desired caps platfor...

自動化郵件傳送服務

最近因為工作需要實現自動化郵件傳送的服務,先在本篇文章裡稍微記錄一下自動化在伺服器端的配置 流程跑通的郵件傳送服務 自動化指令碼cron檔案 只要完成以上兩個條件,任務就結束了,當然難點在第乙個,但是我們這篇文章主要記錄一下第二個。1 建立乙個新的cron檔案,格式如下圖,可能有點抽象不要緊,簡單來...