解决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 相关文章推荐
RC4文件加密的python实现方法
Jun 30 Python
Python制作简单的网页爬虫
Nov 22 Python
Python 迭代器工具包【推荐】
May 06 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
python实现多层感知器
Jan 18 Python
利用python求积分的实例
Jul 03 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
python 变量初始化空列表的例子
Nov 28 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中for循环语句的几种变型
2007/03/16 PHP
一段php加密解密的代码
2007/07/16 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
Python随机生成带特殊字符的密码
2016/03/02 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
Python中进程和线程的区别详解
2017/10/29 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
Python hashlib模块实例使用详解
2019/12/24 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
西式婚礼证婚词
2014/01/12 职场文书
大学生自荐材料范文
2014/12/30 职场文书
担保书范本
2015/01/20 职场文书
2015年酒店工作总结
2015/04/28 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
如何书写授权委托书?
2019/06/25 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL