解决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 27 Python
浅谈Python 对象内存占用
Jul 15 Python
pycharm安装图文教程
May 02 Python
Python实现的HMacMD5加密算法示例
Apr 03 Python
python模块smtplib学习
May 22 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
利用Python小工具实现3秒钟将视频转换为音频
Oct 29 Python
python 爬虫如何正确的使用cookie
Oct 27 Python
如何用 Python 处理不平衡数据集
Jan 04 Python
python基础入门之普通操作与函数(三)
Jun 13 Python
python中pandas对多列进行分组统计的实现
Jun 18 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中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
详解Angular 开发环境搭建
2017/06/22 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
vue中引用阿里字体图标的方法
2018/02/10 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
python连接mysql调用存储过程示例
2014/03/05 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
weblogic面试题
2016/03/07 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
大学生思想汇报范文
2013/12/31 职场文书
学用政策心得体会
2014/09/10 职场文书
在校学生证明格式
2015/06/24 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
springcloud之Feign超时问题的解决
2021/06/24 Java/Android