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

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

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实时查看服务器日志示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python编程实现tail-n查看日志文件的方法

    1.函数实现 # -*- coding: utf-8 -*- def tail(filename, n=10): with open(filename, "r") as f: lines = f.readlines()[-n:] return "".join(lines) 2.测试文件 poetry.txt 为了方便验证,每行之前加上行号数字 1. 虞美人·宜州见梅作 2. 3. 宋代:黄庭坚 4. 5. 天涯也有江南信. 6. 梅破知春近. 7. 夜阑风细得香迟.

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

    我就废话不多说了,直接上代码吧! 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

  • paramiko使用tail实时获取服务器的日志输出详解

    基本思路 现在有这么一个需求需要实现自动化:需要实时获取服务器cpu,gpu温度以及传感器信息上报情况,对高低温环境下对于设备运行状态的影响进行测试.基本思路为利用paramiko ssh到服务器上,起一个线程用tail -f命令实时获取日志输出,起另外一个线程用'cat /sys/class/thermal/thermal_zone0/temp'命令定时获取cpu,gpu温度. 代码 def get_report_info_perid(self, cmd, diff_time, thre_ti

  • django+tornado实现实时查看远程日志的方法

    大致思路: 1.利用tornado提供的websocket功能与浏览器建立长连接,读取实时日志并输出到浏览器 2.写一个实时读取日志的脚本,利用saltstack远程执行,并把实时日志发往redis中. 3.tornado读取redis中的信息,发往浏览器. 此过程用到了redis的发布和订阅功能. 先看一下tornado中是如何处理的: import os import sys import tornado.websocket import tornado.web import tornado

  • Nginx实现浏览器可实时查看访问日志的步骤详解

    一.首先查看nginx版本,我使用的是1.9.7的版本,安装目录在/application/nginx-1.9.7 [root@AnSheng ~]# /application/nginx-1.9.7/sbin/nginx -V nginx version: nginx/1.9.7 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) configure arguments: --prefix=/application/nginx-1.9.7

  • Python如何获取实时股票信息的方法示例

    如何获取实时股票信息 股票信息的接口有很多,之前大家常用的是新浪的,但在年初的时候,新浪的接口突然不能使用,给大家造成了很大的困扰,为此网上也有很多教程教大家如何从新浪获取数据,跟着教程弄了半天也不行,索性换到126(也就是网易了),感觉速度都还不错. 首先我们看下接口地址:http://api.money.126.net/data/feed/1000001,money.api 其中的1000001就是股票代码了,跟新浪的不同,他的第一位代表交易所,后面6位是股票代码 0:上交所 1:深交所 2

  • 用服务器日志监控软件、服务器日志分析工具软件教你如何查看服务器日志?

    现在很多公司局域网都有自己的文件服务器,用于存储或共享一些文件供局域网用户访问使用.但是,在设置共享文件访问的过程中,经常出现共享文件被随意复制.修改甚至删除的情况发生,这使得共享文件的安全管理面临着较大风险.如何既可以让用户访问使用共享文件又可以阻止其对共享文件的不适当操作呢?笔者以为,可以通过以下两种方式来实现: 方法一.通过Windows服务器自带的"文件审核功能"来记录服务器文件访问日志.查看服务器文件操作日志. 有用户询问是否可以对文件服务器上的共享活页夹访问进行监控,比如对

  • Python多任务版静态Web服务器实现示例

    目录 概述 实现步骤 1.导入threading模块 2.设置端口号复用, 程序退出端口立即释放 3.当客户端和服务器建立连接程,创建子线程 4.设置守护主进程 5.启动子线程 代码实现 概述 使用多线程,让web服务器可以同时处理多个用户的访问.当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞.把创建的子线程设置成为守护主线程,防止主线程无法退出. 实现步骤 1.导入threading模块 import threading 2.设置端口号复用, 程序退出

  • 详解linux命令查看服务器上的实时日志

    目录 背景 查看实时日志 背景 在项目开发过程中,在调试的阶段,往往需要debug或者进行查看日志.但日志一般隐藏得比较深,不容易直接找到,常用命令可能有如下: # 查看当前路径下,所有日志文件包含"xxx"的文件中所在行 grep "xxx" *.log.* --col # 查看开头 head xxx.log # 查看结尾 tail xxx.log # 查看全部 cat xxx.log 但是,这样输出日志,往往都是调试之后,在重新查找输出的记录,这样虽然也能排查,

  • 通过MySQL日志实时查看执行语句以及更新日志的教程

    查看MySQL执行的语句 想实时查看MySQL所执行的sql语句,类似mssql里的事件探查器.对my.ini文件进行设置,打开文件进行修改: basedir=E:/MySQL 4.0.12 #bind-address=192.168.15.196 datadir=E:/MySQL 4.0.12/data #language=E:/MySQL 4.0.12/share/your language directory #slow query log#=slowqueris.log #tmpdir#

  • python操作ssh实现服务器日志下载的方法

    本文实例讲述了python操作ssh实现服务器日志下载的方法.分享给大家供大家参考.具体实现方法如下: #coding:utf-8 """ ssh操作例子 实现了服务器日志下载 2012-08-24 yywolf """ import paramiko import time hostname="????" port=22 username="app" password="????" i

随机推荐