zoukankan      html  css  js  c++  java
  • python之tomcat自动化备份,更新

    由于tomcat开始集群,部署较为不变,于是写了个python自动化更新备份脚本

    #!/usr/local/bin/python3
    #coding:utf-8
    
    import os, sys, subprocess, time, shutil
    
    site_file = 'xxxxxi'
    update_file = '/home/sourcedir/' + site_file + '.war'
    webapps_file = '/var/tomcat2/webapps/' + site_file + '.war'
    webapps_dir = '/var/tomcat2/webapps/' + site_file
    bakwebapps_file = '/var/tomcat2/bakwebapps/' + site_file + '.war'
    bakwebapps_dir = '/var/tomcat2/bakwebapps/' + site_file
    
    tomcat_pid =  ((subprocess.Popen("lsof -i :8081 |grep root |awk '{print $2}'", shell=True, stdout=subprocess.PIPE)).stdout.read()).decode()
    
    print("Tomcat will shutdown after 6s, u can enter Ctrl + c interrupt it ! ")
    for i in range(3):
        print("." ,end = "")
        sys.stdout.flush()
        time.sleep(1)
    
    print()
    if len(tomcat_pid) == 0:
        print("> tomcat already shutdown!")
    else:
        subprocess.Popen("/usr/local/tomcat/bin/shutdown.sh > /dev/null 2>&1", shell=True, stdout=subprocess.PIPE)
    
    for i in range(3):
        print("." ,end = "")
        sys.stdout.flush()
        time.sleep(1)
        
    if len(tomcat_pid) == 0: 
        pass 
    else :
       subprocess.Popen("kill -9 " + tomcat_pid, shell=True, stdout=subprocess.PIPE)
       print("
    > Tomcat close the failure, kill the pid %s" % tomcat_pid) 
       
    #备份旧站点
    print("
    --------Begin to backup webapps---------
    ")
     
    if os.path.exists(bakwebapps_file):
        shutil.rmtree(bakwebapps_dir)
        print("> Old bak webapps has been deleted!")
        os.remove(bakwebapps_file)
    else:
        pass
    
    
    shutil.copyfile(webapps_file, bakwebapps_file)    
    shutil.copytree(webapps_dir, bakwebapps_dir)
    for i in range(3):
        print("." ,end = "")
        sys.stdout.flush()
        time.sleep(1)
    print("
    > Backup completed,Start to update the program...")
    shutil.copyfile(update_file, webapps_file)
    
    print("
    > Update completed,start tomcat")
    subprocess.Popen("/usr/local/tomcat/bin/startup.sh", shell=True, stdout=subprocess.PIPE)
    
    for i in range(3):
        print("." ,end = "")
        sys.stdout.flush()
        time.sleep(1)
    tomcat_pid2 =  ((subprocess.Popen("lsof -i :8081 |grep root |awk '{print $2}'", shell=True, stdout=subprocess.PIPE)).stdout.read()).decode()
    
    if len(tomcat_pid2) == 0:
        print("
    > Tomcat has not start, Please check u program!")
    else:
        print("
    > Tomcat have already started !")
    
      

    END!

  • 相关阅读:
    POJ3667 Hotel 题解
    POJ1417 True Liars 题解
    POJ2482 Stars in Your Window 题解
    POJ1704 Georgia and Bob 题解
    矩阵运算
    P4778 Counting Swaps 题解
    poi解析office文档内容的工具类
    VMware安装Centos7超详细过程(图文)
    java后端树形菜单结构
    vue点击事件的修饰符
  • 原文地址:https://www.cnblogs.com/changbo/p/6269902.html
Copyright © 2011-2022 走看看