python实现tail实时查看服务器日志示例


Posted in Python onDecember 24, 2019

我就废话不多说了,直接上代码吧!

import paramiko
from paramiko_expect import SSHClientInteraction
 
host = your host
port = your port
username = your un
 
 
# 自行修改输出函数
json_list = []
def output_func(msg): 
 
  sys.stdout.write(msg)
  json_list.append(msg)
  sys.stdout.flush()
 
 
 
def conn_tail(path):
 
  try:
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    key_file = 'id_rsa_2048'
    key = paramiko.RSAKey.from_private_key_file(key_file, 'yourpwd')
 
    client.connect(host, port, username, key_filename=key_file)
    interact = SSHClientInteraction(client, timeout=10, display=False)
 
    interact.send('sudo su\n')
    interact.expect(prompt)
    interact.send('tail -f %s' % path)
    # log_name = path.split('/')[-1].split('.')[0]
    # interact.tail(line_prefix=log_name + ': ',output_callback=output_func)
    interact.tail( output_callback=output_func)

1.使用了paramiko_expect模块,安装方式

# from pypi
pip install paramiko-expect
 
# from source
pip install git+https://github.com/fgimian/paramiko-expect.git

2.采用id_rsa密钥方式登录

3.由于公司服务器需要切换账号,所以需要先执行sudo xxx操作

4.如果需要同时tail几个日志,可以开多线程

5.如果需要自己对服务器的日志进行处理,而非简单的控制台展示,则需要自行修改output_callback函数

以上这篇python实现tail实时查看服务器日志示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现系统状态监测和故障转移实例方法
Nov 18 Python
python使用clear方法清除字典内全部数据实例
Jul 11 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
python黑魔法之编码转换
Jan 25 Python
Python实现多并发访问网站功能示例
Jun 19 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
int在python中的含义以及用法
Jun 27 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
Python底层封装实现方法详解
Jan 22 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
Python实现播放和录制声音的功能
Aug 12 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 #Python
python中return的返回和执行实例
Dec 24 #Python
Python文件操作函数用法实例详解
Dec 24 #Python
Python的形参和实参使用方式
Dec 24 #Python
python接口自动化如何封装获取常量的类
Dec 24 #Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 #Python
Python 限定函数参数的类型及默认值方式
Dec 24 #Python
You might like
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php adodb操作mysql数据库
2009/03/19 PHP
php操作redis缓存方法分享
2015/06/03 PHP
php猜单词游戏
2015/09/29 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
JS动画效果代码3
2008/04/03 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python深入学习之内存管理
2014/08/31 Python
简单介绍Python中的struct模块
2015/04/28 Python
Python AES加密模块用法分析
2017/05/22 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
进程的查看和调度分别使用什么命令
2015/03/25 面试题
工资收入证明
2014/10/07 职场文书
单位政审意见范文
2015/06/04 职场文书
Python中的datetime包与time包包和模块详情
2022/02/28 Python
MySQL学习之基础操作总结
2022/03/19 MySQL