解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题


Posted in Python onJuly 14, 2020

Python - paramiko 模块远程执行ssh 命令 nohup 不生效的问题解决

1、使用 paramiko 模块ssh 登陆到 linux 执行nohup命令不生效

# 执行命令
def command(ssh_config, cmd, result_print=None, nohup=False):
  ssh = paramiko.SSHClient()
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  ssh.connect(hostname=ssh_config.hostname, port=ssh_config.port, username=ssh_config.username,
        password=ssh_config.password)
  print(ssh_config.hostname + '@' + ssh_config.username, ': ', cmd)
  stdin, stdout, stderr = ssh.exec_command(cmd)
  result = stdout.read()
  if result_print:
    lines = read_unicode(result)
    for line in lines:
      print(line)
  ssh.close()

因为执行完毕后,shell 会立即关闭通道

2、稍作修改,使用 invoke_shell

# 执行命令
def command(ssh_config, cmd, result_print=None, nohup=False):
  ssh = paramiko.SSHClient()
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  ssh.connect(hostname=ssh_config.hostname, port=ssh_config.port, username=ssh_config.username,
        password=ssh_config.password)
  print(ssh_config.hostname + '@' + ssh_config.username, ': ', cmd)
  if nohup:
    cmd += ' & \n '
    invoke = ssh.invoke_shell()
    invoke.send(cmd)
    # 等待命令执行完成
    time.sleep(2)
  else:
    stdin, stdout, stderr = ssh.exec_command(cmd)
    result = stdout.read()
    if result_print:
      lines = read_unicode(result)
      for line in lines:
        print(line)
  ssh.close()

到此这篇关于解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题的文章就介绍到这了,更多相关Python paramiko 模块远程执行ssh 命令 nohup 不生效内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python版的文曲星猜数字游戏代码
Sep 02 Python
python3编写C/S网络程序实例教程
Aug 25 Python
python每隔N秒运行指定函数的方法
Mar 16 Python
Python实现LRU算法的2种方法
Jun 24 Python
如何实现删除numpy.array中的行或列
May 08 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
PyTorch中反卷积的用法详解
Dec 30 Python
Python pandas对excel的操作实现示例
Jul 21 Python
零基础学python应该从哪里入手
Aug 11 Python
python绘制分布折线图的示例
Sep 24 Python
python按照list中字典的某key去重的示例代码
Oct 13 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 #Python
python json.dumps() json.dump()的区别详解
Jul 14 #Python
pandas to_excel 添加颜色操作
Jul 14 #Python
Python数据可视化实现多种图例代码详解
Jul 14 #Python
简单的Python人脸识别系统
Jul 14 #Python
Python局部变量与全局变量区别原理解析
Jul 14 #Python
Python迭代器协议及for循环工作机制详解
Jul 14 #Python
You might like
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
jQuery 加上最后自己的验证
2009/11/04 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
python删除文本中行数标签的方法
2018/05/31 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
Django--权限Permissions的例子
2019/08/28 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
2014年管理人员工作总结
2014/12/01 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
教务处干事工作总结
2015/08/14 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
用python开发一款操作MySQL的小工具
2021/05/12 Python
给numpy.array增加维度的超简单方法
2021/06/02 Python
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js