Python實現tomcat自動啓動,關閉,重啓

# -*- coding:utf-8 -*-
# !/usr/bin/env python3
# name : Alenx

"""
1.自動啓動tomcat ;2.自動關閉tomcat ;3.自動重tomcat ;
"""

import os
import sys
import time
import glob
import telnetlib

host = "127.0.0.1"
port = "8080"
tomcat_path = "/opt/admin/tpc/tomcat7/"


# 清空tomcat所有日誌
def clearlog():
    os.system("cat " + "/dev/null " + "> " + tomcat_path + "logs/catalina.out")
    map(os.remove, glob.glob(tomcat_path + "logs/*.log"))
    map(os.remove, glob.glob(tomcat_path + "logs/*.txt"))


# 關閉tomcat服務器----------------------------------------------------------
def shutdown():
    clearlog()
    print("tomcat正在關閉,請稍等...")
    os.system(tomcat_path + "bin/shutdown.sh")
    os.system("kill -9 $(ps -ef | grep java| awk '{print $2}')")
    time.sleep(5)
    try:
        tel = telnetlib.Telnet(host, port)
        print("關閉tomcat失敗,請手動關閉")
        sys.exit()
    except:
        print("關閉tomcat成功")


# 啓動tomcat服務器----------------------------------------------------------
def startup():
    clearlog()
    print("tomcat正在啓動,廣告過後,馬上回來。。。")
    os.system(tomcat_path + "bin/startup.sh")
    time.sleep(3)
    for k in range(38, 0, -1):
        print (k)
        time.sleep(1)
        os.system("clear")
        # 判斷是否啓動成功
    rizhi = open(tomcat_path + "logs/catalina.out", 'r')
    try:
        telnet = telnetlib.Telnet(host, port)
        xinxi = rizhi.read()
        xinxi.index("Server startup in")
        print("讓你久等了,5秒後揭曉答案")
        time.sleep(6)
        print("啓動tomcat成功,這次算你運氣好!")
        rizhi.close()
    except:
        print("啓動tomcat失敗,其實早在我預料之內!")
        rizhi.close()


# 重啓tomcat服務器----------------------------------------------------------
def restart():
    os.system("service mysql restart")
    print("哈哈,數據庫重啓成功,6秒後重啓tomcat!")
    time.sleep(6)
    # 關閉tomcat
    shutdown()
    # 啓動tomcat
    startup()


# 查看或搜索tomcat日誌-----------------------------------------------------
def viewlog():
    if sousuo == "":
        os.system("cat " + tomcat_path + "logs/catalina.out")
    else:
        os.system("grep -n " + sousuo + " " + tomcat_path + "logs/catalina.out")


# -----------------------------------------------------------
def main():
    print("|--------------------------------------------------------------------------|\n\
                    歡迎使用rmao!\n\
            rmao start    #啓動tomcat服務器\n\
            rmao stop     #關閉tomcat服務器\n\
            rmao restart  #重啓tomcat服務器\n\
            rmao log      #查看tomcat日誌\n\
            rmao clear    #清空tomcat日誌\n\
            \n\
|--------------------------------------------------------------------------|\n ")
    os.system("netstat -tnlp")
    print("-----------------------------------------------------------------------")
    os.system("df -h")
    print("-----------------------------------------------------------------------")


if __name__ == "__main__":
    if len(sys.argv) < 2:
        main()
        sys.exit()
    else:
        pass

    tihuan = sys.argv[1]
    sousuo = ""
    if len(sys.argv) == 3:
        sousuo = sys.argv[2]
    if tihuan == "restart":
        restart()
    elif tihuan == "start":
        startup()
    elif tihuan == "stop":
        shutdown()
    elif tihuan == "log":
        viewlog()
    elif tihuan == "clean":
        clearlog()
    else:
        main()
        sys.exit()

發佈了61 篇原創文章 · 獲贊 26 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章