欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2018年09月29日 10:51:32   投稿:laozhang  
在本篇文章中小編給大家整理了關于通過grep 獲取MySQL錯誤日志信息的方法的相關知識點內容,有需要的朋友們跟著學習下。

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

以下是全部相關代碼:

#!/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 *
 
# 預設字符解碼器為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錯誤日志中包含異?;蝈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 []

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

相關文章

  • MySQL重置root密碼提示

    MySQL重置root密碼提示"Unknown column ‘password"的解決方法

    這篇文章主要介紹了MySQL重置root密碼提示"Unknown column ‘password"的解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • mysql prompt的用法詳解

    mysql prompt的用法詳解

    本篇文章是對mysql中prompt的用法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL存儲過程的權限問題小結

    MySQL存儲過程的權限問題小結

    這篇文章主要介紹了MySQL存儲過程的權限問題小結及mysql 創(chuàng)建存儲過程權限問題,感興趣的朋友一起看看吧
    2018-04-04
  • 使用SKIP-GRANT-TABLES 解決 MYSQL ROOT密碼丟失

    使用SKIP-GRANT-TABLES 解決 MYSQL ROOT密碼丟失

    這篇文章主要介紹了使用SKIP-GRANT-TABLES 解決 MYSQL ROOT密碼丟失的相關資料,需要的朋友可以參考下
    2015-09-09
  • SQL算術運算符之加法、減法、乘法、除法和取模的用法例子

    SQL算術運算符之加法、減法、乘法、除法和取模的用法例子

    算術運算符主要用于數(shù)學運算,其可以連接運算符前后的兩個數(shù)值或表達式,對數(shù)值或表達式進行加(+)、減(-)、乘(*)、除(/)和取模(%)運算,下面這篇文章主要給大家介紹了關于SQL算術運算符之加法、減法、乘法、除法和取模用法的相關資料,需要的朋友可以參考下
    2024-03-03
  • mysql 8.0.17 安裝與使用教程圖解

    mysql 8.0.17 安裝與使用教程圖解

    這篇文章主要介紹了mysql 8.0.17 安裝與使用教程圖解,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 詳解Mysql雙機熱備和負載均衡的實現(xiàn)步驟

    詳解Mysql雙機熱備和負載均衡的實現(xiàn)步驟

    MySQL數(shù)據(jù)庫沒有增量備份的機制,但它提供了一種主從備份的機制,就是把主數(shù)據(jù)庫的所有的數(shù)據(jù)同時寫到備份數(shù)據(jù)庫中。這篇文章主要介紹了Mysql的雙機熱備和負載均衡,需要的朋友可以參考下
    2019-10-10
  • mysql把查詢結果按逗號分割的實現(xiàn)示例

    mysql把查詢結果按逗號分割的實現(xiàn)示例

    使用MySQL數(shù)據(jù)庫的GROUP_CONCAT函數(shù),可以將查詢結果按逗號或其他指定分隔符連接成字符串,這種方法適用于需要匯總數(shù)據(jù)并以字符串形式展示的場景,本文介紹了GROUP_CONCAT函數(shù)的基本用法和注意事項,感興趣的可以了解一下
    2024-09-09
  • MySQL架構設計思想詳解

    MySQL架構設計思想詳解

    這篇文章主要介紹了MySQL架構設計思想詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • Mysql修改server uuid的方法分享

    Mysql修改server uuid的方法分享

    這篇文章主要給大家介紹了關于Mysql修改server uuid的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09

最新評論