主頁 > 知識庫 > 詳解grep獲取MySQL錯誤日志信息的方法

詳解grep獲取MySQL錯誤日志信息的方法

熱門標簽:400電話辦理都選易號網 電銷機器人針對的 外呼系統(tǒng)防封號違法嗎 寶應電信400電話辦理費用 高德地圖標注中心個人注冊 湘潭電銷機器人咨詢電話 高德地圖標注模式 外呼系統(tǒng)服務 如何在高德地圖標注新地址

為方便維護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 []

有興趣的朋友們參考學習下,感謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 通過案例分析MySQL中令人頭疼的Aborted告警
  • MYSQL SERVER收縮日志文件實現(xiàn)方法
  • MySQL中常見的幾種日志匯總
  • 詳解 Mysql 事務和Mysql 日志
  • MySQL讀取Binlog日志常見的3種錯誤
  • MySQL開啟慢查詢日志功能的方法
  • mysql binlog(二進制日志)查看方法
  • MySQL慢查詢日志的基本使用教程
  • MySQL Aborted connection告警日志的分析

標簽:佛山 蘭州 馬鞍山 賀州 南充 黔南 黃山 宿遷

巨人網絡通訊聲明:本文標題《詳解grep獲取MySQL錯誤日志信息的方法》,本文關鍵詞  詳解,grep,獲取,MySQL,錯誤,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解grep獲取MySQL錯誤日志信息的方法》相關的同類信息!
  • 本頁收集關于詳解grep獲取MySQL錯誤日志信息的方法的相關信息資訊供網民參考!
  • 推薦文章