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("\n> Tomcat close the failure, kill the pid %s" % tomcat_pid) 

#备份旧站点
print("\n--------Begin to backup webapps---------\n")

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("\n> Backup completed,Start to update the program...")
shutil.copyfile(update_file, webapps_file)

print("\n> 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("\n> Tomcat has not start, Please check u program!")
else:
    print("\n> Tomcat have already started !")

END!

时间: 2024-10-01 02:52:04

python之tomcat自动化备份,更新的相关文章

xtrabackup一键自动化备份脚本 【原创】

xtrabackup一键自动化备份脚本 V1 [原创] xtrabackup备份工具安装与使用 http://990487026.blog.51cto.com/10133282/1697094 需要填写的信息 备份文件路径        backdir=/ASSET.innobackupex mysql用来备份用户   user=root mysql用户的密码     pass=asset 输出的信息保存路径    logfile=/var/www/html/index.html l [[ema

Selenium+Python+Eclipse网页自动化集成环境配置(附简单的测试程序)

最近公司在给我们培训,主要是网页自动化测试的,现在的工作每天都是测APP,刚刚入门,不过,当我看了别人写的bug之后,就觉得不会觉得能够发现bug多么多么的厉害了. 前两周的时间一直在搭建自动化测试的环境,由于白天上班没有时间做练习,只能下班之后才有时间自己学习一下,苦逼啊.每天都是9点多才从公司回宿舍,但说实在的,这样的日子确实过得很充实,不管怎样,这么好的一个工作环境一定要好好珍惜,学多点东西,挣多点钱回家孝敬一下老爸,他自己一个人扛起我们整个家庭,也确实不容易的.好了,废话不多说了,直接进

用shell脚本自动化备份数据库

防伪码:防止误删系统数据库,定时备份你我更安心! 使用shell脚本自动化备份数据库 一.简介 系统数据库如图所示(以MySQL5.5为例) 1.information_schema:信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息.在information_schema中,有数个只读表.它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件. 2.mysql:MySQL的的核心数据库,类似于SQLServer中的master表,主要负责存储数据库的用户.权限

SVN自动化备份、恢复脚本(下)

#!/bin/bash #本脚本是用来计算本地磁盘空间大小,并且与svn备份文件大小进行比较判断,当满足什么条件时,做出相应的响应. #第一步是检测svn服务器,svn数据文件的总量大小和本机磁盘剩余空间的大小. ##连接10.68.3.152服务器,查看最新svn文件大小,获取查看的值. datef() {         date "+%Y/%m/%d %H:%M" } password=xxxx2015 svnreport=/data/log/report_`date "

浅析Python进行接口自动化

python进行接口自动化需要依赖于requests库,首先如果没有下载该库,使用pip进行下载到本地:1.进入D:\软件安装文件夹\PYTHON\Scripts目录下(ps:这个看个人安装python位置),使用cmd进入命令界面,输入pip install requests,完成后即可使用 参考示例: 期间自己调测可以使用fiddler抓包进行调试,后面再研究使用unitest测试框架进行校验等 原文地址:https://blog.51cto.com/12390959/2369129

Python语言web自动化通用脚本

web自动化脚本中有一部分代码是可以借鉴的,我们只需要将这个框架移植到当前项目中,修改部分参数即可.比如日志类.driver对象.元素基本操作等. 以商城项目为例,以下就是相关代码. base包(内含日志.driver对象.页面元素操作): 页面元素操作(base.py): import timefrom time import sleep import pagefrom selenium.webdriver.support.wait import WebDriverWaitfrom base.

Python+PyQT5的子线程更新UI界面的实例《新手必学》

今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧子线程里是不能更新UI界面的,在移动端方面.Android的UI访问是没有加锁的,多个线程可以同时访问更新操作同一个UI控件.也就是说访问UI的时候,android系统当中的控件都不是线程安全的,这将导致在多线程模式下,当多个线程共同访问更新操作同一个UI控件时容易发生不可控的错误.所以Android中规定只能在UI线程中访问UI,相当于从另一个角度给Andr

Shell编程应用篇之网站自动化备份

rsync是类unix系统下的数据镜像备份工具--remote sync.一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步.与传统的cp.scp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等. 环境 centos 5.8(64)  192.168.23.130 (service) cent

python WEB接口自动化测试之requests库详解

1.Get请求 前提: requests库是python的第三方库,需要提前安装哦,可以直接用pip命令:`python –m pip install requests` 按照惯例,先将requests库的属性打印出来,看看哪些属性. >>> import requests >>> dir(requests) #查看requests库的属性 ['ConnectionError', 'HTTPError', 'NullHandler', 'PreparedRequest'