此前书写了多实例的 Tomcat 启动等操作的脚本,今天完善 Tomcat 多实例部署(本脚本只提供思路)
脚本内容:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #!/usr/bin/env python 2 # _*_coding:utf-8_*_ 3 # Author: "Edward.Liu" 4 5 # Import libary~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 import subprocess 7 import time 8 import sys 9 import signal 10 import os 11 import argparse 12 import contextlib 13 import zipfile 14 15 16 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 17 class Tomcat(object): 18 def __init__(self, tomcat_exe): 19 self.tomcat_exe = tomcat_exe 20 self.Tomcat_Home = "/software/%s" % tomcat_exe 21 self.Tomcat_Log_Home = "/software/%s/logs" % tomcat_exe 22 self.counnt = 10 23 # deploy options 24 self.timeStr = time.strftime("%Y-%m-%d-%H:%M") 25 self.source_files = "/software/cybershop-front-0.0.1-SNAPSHOT.war" 26 self.dest_dir = "/software/upload_project/%s-%s" % ( 27 self.timeStr, self.source_files.split('/')[2].split('.war')[0]) 28 self.dest_deploy_dir = "/software/deploy-front/%s" % self.source_files.split('/')[2].split('.war')[0] 29 self.images_Home = "/software/newupload1" 30 self.static_images_lins = "%s/assets/upload" % self.dest_dir 31 self.static_Home = "/data/www" 32 self.static_home_link = "%s/www" % self.dest_dir 33 # deploy options --->end 34 35 # Get Tomcat_PID~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 def get_tomcat_pid(self): 37 # 自定义获取程序 pid 与启动命令 38 p = subprocess.Popen(['ps', '-Ao', 'pid,command'], stdout=subprocess.PIPE) 39 out, err = p.communicate() 40 for line in out.splitlines(): 41 if 'java' in line: 42 if self.tomcat_exe in line: 43 pid = int(line.split(None, 1)[0]) 44 return pid 45 # 获取 END 46 47 # Start Tomcat Process~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 48 def start_tomcat(self): 49 if self.get_tomcat_pid() is not None: 50 print "