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
Ich habe kürzlich mit der Remote-Entwicklungsfunk...
Wenn das Front-End die Schnittstelle anfordert, w...
Die Ausführungsbeziehung zwischen dem href-Sprung...
Wenn Sie jemand fragen würde, ob die Ausführung v...
Installieren Sie die erforderliche Umgebung 1. gc...
MySQL-Basisdatentypen Übersicht über gängige MySQ...
Dieser Artikel enthält einfachen HTML- und Musikp...
Dieser Artikel beschreibt die Linux-Dateiverwaltu...
Vorwort scp ist die Abkürzung für „Secure Copy“. ...
I. Einleitung Lassen Sie mich zunächst die MySQL-...
Zusammenfassung: MySQL bietet eine Vielzahl von S...
Überblick Was das aktuelle Standardnetzwerk von D...
UPD 2020.2.26 Derzeit ist Ubuntu 20.04 LTS noch n...
1. Suchen Sie mysqldump.exe im MySQL-Installation...
In diesem Artikelbeispiel wird der spezifische Co...