Python自动化部署环境

2023-11-18

import paramiko
import sys

# 创建SSHClient实例对象
ssh = paramiko.SSHClient()
# 调用方法,表示没有存储远程机器的公钥,允许访问
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程机器  地址、端口、用户名和密码
ssh.connect('192.168.145.130', 22, 'huangjin', 'hj130826')

def remoteRun(cmd):
    stdin, stdout, stderr = ssh.exec_command(cmd)
    output = stdout.read().decode()
    errinfo = stderr.read().decode()
    print(output + errinfo)
    return output + errinfo

# 检查是否有之前版本运行
output = remoteRun('ps -ef|grep open_platform|grep -v grep')
# 如果存在 杀死进程
if 'python3 projec/cherrypy_startup.py open_platform'in output:
    print('服务运行中,停止服务')
    parts = output.split(' ')
    print(parts)
    pid = parts[5]
    remoteRun(f'kill -9 {pid}')
# 删除原来包
print('删除原来的包')
remoteRun('open_platform.zip')
# 上传安装包
print('上传安装包')
sftp = ssh.open_sftp()
sftp.put(r'd:\open_platform.zip', '/home/open_platform.zip')
sftp.close()
# 解压安装包
print('解压安装包')
remoteRun('unzip open_platform.zip')
print('ok')
# 运行
print('运行')
remoteRun('cd /home/open_platform; chmod +x run.sh; sh run.sh')
# 检查是否运行成功
print('是否运行成功')
output = remoteRun('ps -ef|grep open_platform|grep -v grep')
if 'python3 projec/cherrypy_startup.py open_platform'in output:
    print('服务运行成功')
else:
    print('服务没有运行')
    sys.exit(3)

  

转载于:https://www.cnblogs.com/sumday/p/11021411.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python自动化部署环境 的相关文章

  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • Element Plus 实例详解(一)___安装设置

    Element Plus 实例详解 一 安装设置 本篇目录 一 前言 二 安装方法 1 环境支持 2 Element Plus安装使用方式 1 使用包管理器 2 浏览器直接引入 3 Element Plus引入方式使用小例子 三 Eleme
  • C++ 函数模板的重载与实参推断

    结合网上的资料 对函数模板的重载与实参推断做一个总结 函数模板的重载 当需要对不同的类型使用同一种算法时 为了避免定义多个功能重复的函数 可以使用模板 然而 并非所有的类型都使用同一种算法 有些特定的类型需要单独处理 为了满足这种需求 C
  • angular中组件之间的嵌套使用

    第一步先把对应的文件创建好 main component ts phone component ts books component ts details component ts 第二步 导入到我们的app module文件中 impor
  • pip修改下载源

    Windows 直接切换到虚拟环境中 输入下面的命令即可 配置中科大镜像 pip config set global index url https mirrors ustc edu cn pypi web simple 配置阿里源 pip
  • java实现一个整数和一个小数的四则运算和求最大值,平均值。

    实现一个整数和一个小数的四则运算和求最大值 平均值 import java applet Applet import java awt public class Yunsuan extends Applet Label prompt1 pr
  • verilog中$readmemb和$readmemh的使用

    菜鸟一枚 只是分享一下在学习的过程 和这两个系统函数的简单用法 readmemb和 readmemh用来从文件中读取数据到存储器中 读取的内容只包括 空白位置 空格 换行 制表格 tab和form feeds 注释行 二进制或十六进制的数字
  • 微信小程序后端,helloworld,a+b,JSONObject相关问题。

    参考视频教程 b站 P5 输出hello world 按视频教程敲 即可 小程序输入数字 IDEA运算后返回A B 小程序开发工具中代码 IDEA中代码 教程 所遇到问题 解决 输入后 找不到getInteger方法 检查发现 是我类的问题
  • 用html+css给女朋友写一个爱心

    这是最后的样子 用一个div 再用before和after就行了 这是html div class ax div 再加上css padding 0px margin
  • 华为OD机试 - 字符串排序(C++ & Java & JS & Python)

    目录 描述 输入描述 输出描述 示例1 Java python C 描述 编写一个程序 将输入字符串中的字符按如下规则排序 规则 1 英文字母从 A 到 Z 排列 不区分大小写 如 输入 Type 输出
  • jdbc(2)——之Class.forName(com.mysql.cj.jdbc.Driver)理解

    理解Class forName Com mysql cj jdbc Driver Class forName com mysql cj jdbc Driver 在使用jdbc的时候这行代码必不可少 我们来仔细理解一下这行代码的意义和原理 1
  • 毕业设计 免费送源码36412-SSM 环卫人员管理平台,【计算机毕业设计开题选题+程序定制+论文书写+答辩ppt书写-原创(题目+编号)的定制程序】

    本科生毕业论文 设计 题 目SSM环卫人员管理平台 学 院 XXXXX 专业班级 XXXXX 用户姓名 XXXX 指导人才招聘 XXXX 撰写日期 2023年3月 目 录 摘要 1 绪论 1 1背景及意义 1 2国内外研究概况 1 3研究内
  • 列举几个:MAC OS科研软件推荐

    工欲善其事 必先利其器 部分科研狗也会深爱MAC OS虽然他再科研软件上跟WINDOWS相比还有一定差距 但是MAC OS的人性化轻量也是深得人心 这次就为大家推荐MAC OS上的科研软件 1 科学绘图软件 QtiPlot SciDAVis
  • CS5216

    CS5216特点 DP 到HDMI的显示协议转换器 支持Level shifter Repeater两种应用 应用Dongle或Cable市场 将显卡DP 输出 转接为HDMI输出 CS5216参数 符合高达3 0Gbps的HDMI 1 4
  • Linux之prink原理

    我的分析是基于Linux4 15 1 1 看看kernel是如何调用到console初始化函数的 分两条线 a start kernel gt console init gt call con initcall start 去调用放在 co
  • Java 集合、HashMap 底层实现原理

    一 Java 集合概述 Java 集合可分为 Collection 和 Map 两种体系 Collection接口 单列数据 定义了存取一组对象的方法的集合 List 元素有序 指的是存储时 与存放顺序保持一致 可重复的集合 Set 元素无
  • Mybatis---增删改查

    目录 一 添加用户 1 持久层接口方法 2 映射文件 3 测试方法 二 修改用户 1 持久层接口方法 2 映射文件 3 测试方法 三 删除用户 1 持久层接口方法 2 映射文件 3 测试方法 四 查询用户 1 持久层接口方法 2 映射文件
  • Redis查询当前库有多少个 key

    info可以看到所有库的key数量 dbsize则是当前库key的数量 keys 这种数据量小还可以 大的时候可以直接搞死生产环境 dbsize和keys 统计的key数可能是不一样的 如果没记错的话 keys 统计的是当前db有效的key
  • C++面试题之继承

    目录 设计一个类型 不能在外部环境中创建该类的对象 设计一个不能被继承的类 设计一个不能被继承的类 但可以在外部环境创建该类型的对象 设计一个能被继承的类 但不能在外部环境创建该类型的对象 限制派生类对象不可以拷贝和赋值如何实现 设计一个类
  • Git(五):历史提交与远程仓库修改

    目录 4 查看提交历史 4 1 查看日志详细信息 4 2 查看某次提交信息 4 3 查看更改 5 撤销操作 5 1 取消暂存的文件 5 2 撤销对文件的修改 5 3 撤销远程记录 6 远程仓库的使用 6 1 查看远程仓库 6 2 添加远程仓
  • Python自动化部署环境

    import paramiko import sys 创建SSHClient实例对象 ssh paramiko SSHClient 调用方法 表示没有存储远程机器的公钥 允许访问 ssh set missing host key polic