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
Inhaltsverzeichnis Ursache des Problems: Lösung: ...
Inhaltsverzeichnis 1. beforeunload-Ereignis 2. Er...
Inhaltsverzeichnis Installieren Komponenten impor...
Bei Datenbanken, die schon lange laufen, besteht ...
Was ist MyCAT Ein vollständig Open Source-Großdat...
Vorwort Die Boost-Bibliothek ist eine portable, m...
vue-element-admin importiert Komponentenkapselung...
Um einen Shell-Befehl in Docker auszuführen, müss...
mysql-5.7.20-winx64.zipInstallationspaket ohne In...
Das Standard-Remote-Repository von Nexus ist http...
1. Erstellen Sie zuerst die Datei (wechseln Sie p...
Docker-Lernen https://www.cnblogs.com/poloyy/p/15...
Ich glaube, jeder Mensch ist sehr sensibel für Fa...
1. Verwendung von instanceof Mit instanceof wird ...
In diesem Artikel wird der spezifische Code der r...