当前位置: 首页 > 编程笔记 >

详解grep获取MySQL错误日志信息的方法

汝昀
2023-03-14
本文向大家介绍详解grep获取MySQL错误日志信息的方法,包括了详解grep获取MySQL错误日志信息的方法的使用技巧和注意事项,需要的朋友参考一下

为方便维护MySQL,写了个脚本用以提供收集错误信息的接口。这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径。

以下是全部相关代码:

#!/usr/bin/env python2.7
#-*- encoding: utf-8 -*-
 
"""
该模块用于提取每天mysql日志中的异常或错误信息
author: xiaomo
email: moxiaomomo@gmail.com
"""
 
import os
import sys
import string
from datetime import *
 
# 預設字符解碼器為utf-8
reload(sys)
sys.setdefaultencoding('utf-8') 
 
COMMON_FLAGS = ["error", "exception", "fail", "crash", "repair"]
 
def _contain_flag(cur_str):
  for flag in COMMON_FLAGS:
    if flag in string.lower(cur_str):
      return True
  return False
 
"""
获取当前mysql实例的error_log文件路径
"""
def _get_mysql_error_log_path():
  log_path = ''
  grep_infos = os.popen('ps aux | grep mysql | grep "log-error"').read()
  if len(grep_infos) > 1:
    grep_infos = grep_infos.split("log-error=")
  if len(grep_infos) > 1:
    grep_infos = grep_infos[1].split(' ')
  if len(grep_infos) > 1:
    log_path = grep_infos[0]
  return log_path
 
"""
读取mysql错误日志中包含异常或错误信息的行
"""
def _get_error_info(error_log, begin_date):
  error_infos = []
  f = open(error_log, 'r')
  lines = f.readlines()
  for line in lines:
    data_array = line.split(' ')
    if len(data_array) > 0 and len(data_array[0]) == 10:
      dt_strs = data_array[0].split('-')
      cur_date = date(int(dt_strs[0]), int(dt_strs[1]), int(dt_strs[2]))
      if cur_date >= begin_date and _contain_flag(line):
        error_infos.append(line)
  f.close()
  return error_infos
 
"""
组装并返回mysql错误日志信息
"""
def get_mysql_errors(begin_date=date.today()-timedelta(1)):
  try:
    err_log_path = _get_mysql_error_log_path()
    if len(err_log_path) > 1:
      return _get_error_info(err_log_path, begin_date)
  except Exception,e:
    print "[get_mysql_errors]%s"%e  
  return []

有兴趣的朋友们参考学习下,感谢大家对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍详解PHP错误日志的获取方法,包括了详解PHP错误日志的获取方法的使用技巧和注意事项,需要的朋友参考一下 在PHP中错误日志的获取方法有很多种,下面我给大家简单介绍下遇到此类问题如何解决,下面通过代码给大家展示下,希望能够帮助到大家。 对于php错误, 我们一定要认识清楚, 类型分几种, 什么时候触发, 返回值是什么. 如果不区分警告, 错误, 建议,提示等细类型种类, 那我们可以理

  • 本文向大家介绍php获取图片信息的方法详解,包括了php获取图片信息的方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php获取图片信息的方法。分享给大家供大家参考,具体如下: getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以

  • 本文向大家介绍详解javascript获取url信息的常见方法,包括了详解javascript获取url信息的常见方法的使用技巧和注意事项,需要的朋友参考一下 先以“http://www.cnblogs.com/wuxibolgs329/p/6188619.html#flag?test=12345”为例,然后获得它的各个组成部分。 1、获取页面完整的url 2、获取页面的域名 3、获取url协议

  • 主要内容:启动和设置错误日志,查看错误日志,删除错误日志错误日志(Error Log)是 MySQL 中最常用的一种日志,主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。 作为初学者,要学会利用错误日志来定位问题。下面介绍如何操作查看错误日志。 启动和设置错误日志 在 MySQL 数据库中,默认开启错误日志功能。一般情况下,错误日志存储在 MySQL 数据库的数据文件夹下,通常名称为 hostname.er

  • —profile 参数可以收集一些构建期间的信息并保存到 build/reports/profile 目录下. 并且会以构建时间命名这些文件. 下面是一份日志. 这份日志记录了总体花费时间以及各过程花费的时间. 并以时间大小倒序排列. 并且记录了任务的执行情况. 如果采用了 buildSrc, 那么在 buildSrc/build 下同时也会生成一份日志记录记录.

  • 我只是在学习android studio,得到这个错误,无法解决。我甚至搞不清楚这个问题与什么有关。(所有其他应用程序都正常工作)。我尝试了stackoverflow中的一些其他解决方案,但没有一个解决我的问题.... 有什么解释吗???