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

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

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

為方便維護(hù)MySQL,寫了個腳本用以提供收集錯誤信息的接口。這些錯誤信息來自與MySQL錯誤日志,而 通過grep mysql可以獲取error-log的路徑。

以下是全部相關(guān)代碼:

#!/usr/bin/env python2.7
#-*- encoding: utf-8 -*-
 
"""
該模塊用于提取每天mysql日志中的異?;蝈e誤信息
author: xiaomo
email: moxiaomomo@gmail.com
"""
 
import os
import sys
import string
from datetime import *
 
# 預(yù)設(shè)字符解碼器為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
 
"""
獲取當(dāng)前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錯誤日志中包含異?;蝈e誤信息的行
"""
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 []

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

您可能感興趣的文章:
  • 通過案例分析MySQL中令人頭疼的Aborted告警
  • MYSQL SERVER收縮日志文件實現(xiàn)方法
  • MySQL中常見的幾種日志匯總
  • 詳解 Mysql 事務(wù)和Mysql 日志
  • MySQL讀取Binlog日志常見的3種錯誤
  • MySQL開啟慢查詢?nèi)罩竟δ艿姆椒?/li>
  • mysql binlog(二進(jìn)制日志)查看方法
  • MySQL慢查詢?nèi)罩镜幕臼褂媒坛?/li>
  • MySQL Aborted connection告警日志的分析

標(biāo)簽:佛山 蘭州 馬鞍山 賀州 南充 黔南 黃山 宿遷

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