解决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实现单词拼写检查
Apr 25 Python
python如何在终端里面显示一张图片
Aug 17 Python
Python探索之SocketServer详解
Oct 28 Python
人机交互程序 python实现人机对话
Nov 14 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
Python和Go语言的区别总结
Feb 20 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
Python猫眼电影最近上映的电影票房信息
Sep 18 Python
python执行js代码的方法
May 13 Python
Python基础教程,Python入门教程(超详细)
Jun 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
php读取本地json文件的实例
2018/03/07 PHP
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python list与NumPy array 区分详解
2019/11/06 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
基于Python测试程序是否有错误
2020/05/16 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
现金会计岗位职责
2013/12/05 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
学习决心书
2014/03/11 职场文书
电信营业员岗位职责
2015/04/14 职场文书
课题研究阶段性总结
2015/08/13 职场文书
python xlwt模块的使用解析
2021/04/13 Python
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
python 爬取吉首大学网站成绩单
2021/06/02 Python