解决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使用pil生成缩略图的方法
Mar 26 Python
浅析Python中的多进程与多线程的使用
Apr 07 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python+rsync精确同步指定格式文件
Aug 29 Python
Django如何使用jwt获取用户信息
Apr 21 Python
零基础学python应该从哪里入手
Aug 11 Python
Python爬虫教程知识点总结
Oct 19 Python
Python控制鼠标键盘代码实例
Dec 08 Python
Python使用openpyxl复制整张sheet
Mar 24 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 取得瑞年与平年的天数的代码
2009/08/10 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
date.parse在IE和FF中的区别
2010/07/29 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
深入理解ES6中let和闭包
2018/02/22 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
vue项目出现页面空白的解决方案
2019/10/31 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
python脚本监控docker容器
2016/04/27 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
对python中return与yield的区别详解
2020/03/12 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
Linux常见面试题
2016/10/04 面试题
小学开学寄语
2014/01/19 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书