Um die Wartung von MySQL zu erleichtern, wurde ein Skript geschrieben, das eine Schnittstelle zum Sammeln von Fehlerinformationen bereitstellt. Diese Fehlermeldungen stammen aus dem MySQL-Fehlerprotokoll und der Pfad des Fehlerprotokolls kann durch grep mysql abgerufen werden. Hier ist der gesamte relevante Code: #!/usr/bin/env python2.7 #-*- Kodierung: utf-8 -*- """ Dieses Modul wird verwendet, um abnormale oder fehlerhafte Informationen aus dem täglichen MySQL-Protokoll zu extrahieren. Autor: xiaomo E-Mail: [email protected] """ Betriebssystem importieren System importieren Importzeichenfolge von Datum/Uhrzeit-Import * # Der Standardzeichendecoder ist utf-8 neu laden(sys) sys.setdefaultencoding('utf-8') COMMON_FLAGS = ["Fehler", "Ausnahme", "Fehler", "Absturz", "Reparatur"] def _contain_flag(aktueller_str): für Flag in COMMON_FLAGS: wenn Flag in String.lower(cur_str): returniere True returniere False """ Holen Sie sich den error_log-Dateipfad der aktuellen MySQL-Instanz""" def _get_mysql_error_log_path(): log_path = '' grep_infos = os.popen('ps aux | grep mysql | grep "log-error"').lesen() wenn Länge(grep_infos) > 1: grep_infos = grep_infos.split("log-error=") wenn Länge(grep_infos) > 1: grep_infos = grep_infos[1].split(' ') wenn Länge(grep_infos) > 1: log_pfad = grep_infos[0] log_path zurückgeben """ Lesen Sie die Zeile mit den Ausnahme- oder Fehlerinformationen im MySQL-Fehlerprotokoll""" def _get_error_info(Fehlerprotokoll, Anfangsdatum): Fehlerinfos = [] f = öffnen(Fehlerprotokoll, 'r') Zeilen = f.readlines() für Zeile in Zeilen: Datenarray = Zeile.geteilt(' ') wenn len(data_array) > 0 und len(data_array[0]) == 10: dt_strs = Datenarray[0].split('-') aktuelles_Datum = Datum(int(dt_strs[0]), int(dt_strs[1]), int(dt_strs[2])) wenn cur_date >= begin_date und _contain_flag(Zeile): error_infos.append(Zeile) f.schließen() Fehlerinformationen zurückgeben """ MySQL-Fehlerprotokollinformationen zusammenstellen und zurückgeben""" def get_mysql_errors(begin_date=date.today()-timedelta(1)): versuchen: err_log_path = _get_mysql_error_log_path() wenn Länge(err_log_path) > 1: returniere _get_error_info(err_log_path, begin_date) außer Ausnahme,e: drucken "[get_mysql_errors]%s"%e zurückkehren [] Interessierte Freunde können es zum Lernen zu Rate ziehen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Implementierung von Redis mit einem Master, zwei Slaves und drei Sentinels basierend auf Docker
>>: Vue-Anfängerhandbuch: Erstellen des ersten Vue-cli-Scaffolding-Programms
Einführung in das Layout des HTML-Seitenquellcode...
Inhaltsverzeichnis 1.parseInt(Zeichenfolge, Basis...
Heute bin ich beim Entwickeln auf eine Methode ge...
Lösung für „Curl-config konnte nicht ausgeführt w...
Das Installationstutorial für MySQL 5.7.27 wird w...
Es gibt drei Typen von regulären Matching-Selekto...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis Phänomen: Portnutzung: Rechtsc...
Ich werde meinen ersten Versuch mit vue3.0 aufzei...
Ich habe im Internet nach dreistufigen Verknüpfun...
Inhaltsverzeichnis 1. Plugins 2. Zwischenspiel 3....
In diesem Artikelbeispiel wird der spezifische Co...
Die Tabellenstruktur ist wie folgt. Es gibt nur 6...
Beispiel für die Validierung eines jQuery-Formula...
Inhaltsverzeichnis 1. Installieren Sie die erford...