预设条件
产品运行在Linux CentOS6 X64上
python3,Djanggo,Cherrypy安装好
手动安装过程
登录服务器
检查是否有以前的版本的产品在运行,有,停掉
如果有原来的代码包删除掉
上传安装包文件(手工winscp)
备份原来的产品安装目录
解压安装包文件
运行run.sh,启动服务
浏览器登录页面校验服务是否启动
import paramiko
import sys
#创建SSHClient,实例对象
ssh = paramiko.SSHClient()
#信任远程机器,允许访问
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接远程机器 地址、端口、用户名、密码
ssh.connect(("192.168.160.234",
22,
"root",
"magic"))
def remoteRun(cmd,printOutput=True):
stdin, stdout, stderr = ssh.exec_command(cmd)
output = stdout.read().decode('utf8')
errinfo = stderr.read().decode()
if printOutput:
print(output+errinfo)
return output + errinfo
#查看老版本是否运行
stdin, stdout, stderr = ssh.exec_command(
'ps -ef|grep apiteach|grep -v grep')
# 打印返回值
output = stdout.read().decode()
print(output)
if 'python3 project/cherrypy_startup.py apitesch' in output:
print("老版本存在,杀死老版本")
parts=output.split(' ')
#去除掉空字符串
parts=[part for part in parts if part]
pid=parts[1]
ssh.exec_command(f'kill -9 {pid}')
#删除文件
ssh.exec_command('rm -f restapi-teach.zip')
#上传文件
sftp=ssh.open_sftp()
#左边本地文件,右边上传位置
sftp.put(r'f: emp
estapi-teach.zip','/home/stt5/restapi-teach.zip')
sftp.close()
print('备份原来的安装目录')
remoteRun('rm -rf restapi-teach.bak;mv restapi-teach restapi-teach.bak')
print('解压安装包')
remoteRun('unzip restapi-teach.zip',printOutput=False)
print('运行')
remoteRun('cd restapi-teach;chmod +x run.sh;dos2unix run.sh;'
'./run.sh;sleep 5')
print('检查版本是否运行成功')
output=remoteRun('ps -ef|grep apiteach|grep -v grep')
#如果存在,运行成功
if 'python3 project/cherrypy_startup.py apitesch' in output:
print("新版本运行成功")
else:
print("新版本运行失败")
sys.exit(3)
from selenium import webdriver
driver=webdriver.Chrome()
driver.implicitly_wait(10)
driver.get(f'http://127.0.0.1:8066/mgr/login/login.html')
driver.find_element_by_id('username').send_keys('auto')
driver.find_element_by_id('password').send_keys('auto')
driver.find_element_by_tag_name('button').click()