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
Wenn Sie VMware Workstation zum Öffnen einer virt...
Responsive Design bedeutet, während des Website-E...
Vorwort Für das Projekt ist ein kreisförmiges Men...
Die Verwendung von „Computed“ in vue3. Da vue3 mi...
1. Video-Tag Unterstützt die automatische Wiederg...
Was ist ELK? ELK ist ein vollständiger Satz von L...
In diesem Artikel wird der spezifische JavaScript...
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikel wird der spezifische Code von J...
Stellen Sie die Breite des Textkörpers auf die Bre...
Inhaltsverzeichnis 1. Folgen Sie dem Assistenten,...
Da HTML-E-Mail keine unabhängige HOST-Seite auf di...
Inhaltsverzeichnis Vorwort Was soll verwendet wer...
Die Hintergrundfarbe der Tabelle kann über das At...
Inhaltsverzeichnis Keine Slots Vue2.x-Steckplätze...