解决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编写电话薄实现增删改查功能
May 07 Python
Python操作SQLite数据库的方法详解
Jun 16 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
python 实现调用子文件下的模块方法
Dec 07 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
python实现加密的方式总结
Jan 19 Python
Python request操作步骤及代码实例
Apr 13 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 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 设置MySQL连接字符集的方法
2011/01/02 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
jquery.ui.draggable中文文档
2009/11/24 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
Move.js入门
2017/02/08 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
python编写Logistic逻辑回归
2020/12/30 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
python 元组的使用方法
2020/06/09 Python
为什么是 Python -m
2020/06/19 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
PHP面试题集
2016/12/18 面试题
行政经理岗位职责
2013/11/09 职场文书
怎样写留学自荐信
2013/11/11 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
求职自我评价范文100字
2014/09/23 职场文书
高一军训感想
2015/08/07 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle