解决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 23 Python
python在windows下实现ping操作并接收返回信息的方法
Mar 20 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
Django中的Signal代码详解
Feb 05 Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 Python
Django中的forms组件实例详解
Nov 08 Python
OpenCV图像颜色反转算法详解
May 13 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
Python unittest单元测试框架实现参数化
Apr 29 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
Python基本数据类型之字符串str
Jul 21 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
德生PL550的电路分析
2021/03/02 无线电
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
js随机生成一个验证码
2017/06/01 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
node内置调试方法总结
2018/02/22 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
Python的时间模块datetime详解
2017/04/17 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
高中军训感言200字
2014/02/23 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
节能环保口号
2014/06/12 职场文书
学生通报表扬范文
2015/05/04 职场文书
公诉意见书范文
2015/06/05 职场文书
岁月神偷观后感
2015/06/11 职场文书
好人好事新闻稿
2015/07/17 职场文书
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js