Automatische Sicherung der MySQL-Datenbank per Shell-Skript

Automatische Sicherung der MySQL-Datenbank per Shell-Skript

Automatische Sicherung der MySQL-Datenbank per Shell-Skript

Es ist eine gute Angewohnheit, die Datenbank regelmäßig zu sichern. Obwohl die Wahrscheinlichkeit einer Datenbankbeschädigung oder eines Datenverlusts sehr gering ist, ist es sinnlos, so etwas zu bereuen, wenn es einmal passiert. Zum Sichern der Datenbank im Hintergrund einer Website oder Anwendung gibt es in der Regel eine Funktionsschaltfläche, diese muss jedoch manuell ausgeführt werden. Wir benötigen eine sichere Möglichkeit, jeden Tag automatisch ein Backup zu erstellen. Mit dem folgenden Shell-Skript können Sie Crontab so einrichten, dass die MySQL-Datenbank täglich gesichert wird.

#!/bin/bash
# Datenbankauthentifizierung user=""
 Passwort=""
 Gastgeber=""
 Datenbankname = ""
# Anderer Backup-Pfad="/Pfad/zu/Ihrem/Homepage/_backup/mysql"
 Datum = $ (Datum + "%d-%b-%Y")
# Setzen Sie die Standardberechtigungen für exportierte Dateien auf umask 177
# Datenbank in SQL-Datei sichern mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql

Mit dem obigen Skript können wir jeden Tag eine SQL-Sicherungsdatei exportieren und der Dateiname wird entsprechend dem Datum des Tages generiert. Im Laufe der Zeit werden viele solcher Dateien generiert. Es ist notwendig, einige alte Sicherungsdateien regelmäßig zu löschen. Die folgende Befehlszeile dient dieser Aufgabe. Sie können sie nach dem obigen Skript hinzufügen.

# Löschen Sie die Sicherungsdateien, die älter als 30 Tage sind. find $backup_path/* -mtime +30 -exec rm {} \;

Bei der Verwendung des obigen Skripts ist mir einmal ein Problem begegnet. Es trat kein Fehler auf, als Crontab den Skriptexport regulär ausführte, aber die exportierte SQL-Datei war leer. Als ich mich jedoch bei der Konsole anmeldete und das Skript manuell ausführte, war die Sicherung erfolgreich. Später stellte ich fest, dass dem Crontab-Ausführungsskript Informationen zur Systemumgebung fehlten und mysqldump nicht gefunden werden konnte. Die Korrekturmethode bestand darin, den vollständigen Pfad von mysqldump zu verwenden. Der Grund, warum keine Fehlermeldung angezeigt wird, liegt darin, dass mysqldump die Fehlermeldung an stderr ausgibt. Fügen Sie am Ende des Befehls "2>&1" hinzu, damit Sie die Fehlermeldung sehen können:

mysqldump -ujoe -ppassword > /tmp/eineDatei 2>&1

Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, danke für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • HBASE verwendet häufig Shell-Befehle, Methoden zum Hinzufügen, Löschen, Ändern und Abfragen
  • Shell-Skript zum Implementieren geplanter MySQL-Sicherungs-, Lösch- und Wiederherstellungsfunktionen
  • So verarbeiten Sie MySQL-Abfrageergebnisse einfach in der Shell
  • Schreiben Sie ein MySQL-Datensicherungsskript mithilfe der Shell
  • So melden Sie sich unter Shell schnell ohne Kennwort bei der MySQL-Datenbank an
  • Verwenden Sie Shell-Skripte, um MySQL hinzuzufügen, zu löschen, zu ändern und zu überprüfen und my.cnf zu konfigurieren

<<:  Zeigen Sie die vom Prozess in Linux belegte Portnummer an

>>:  JavaScript, um den Effekt des Klickens auf das selbst erstellte Menü zu erzielen

Artikel empfehlen

Verwandte Vorgänge zum Hinzufügen und Löschen von Indizes in MySQL

Inhaltsverzeichnis 1. Die Rolle des Index 2. Erst...

Detaillierte Erklärung von react setState

Inhaltsverzeichnis Ist setState synchron oder asy...

MySQL sql_mode-Analyse und Einstellungserklärung

Beim Einfügen eines Datensatzes in die MySQL-Date...

Detaillierte Erklärung der Schritte zum Erstellen eines Vue-Projekts mit Vue-cli

Zuerst müssen Sie Vue-cli installieren: npm insta...

Beispiel einer Autorisierungsüberprüfungsmethode von Nest.js

Inhaltsverzeichnis 0x0 Einführung 0x1 RBAC-Implem...

So stellen Sie mit Navicat eine Remoteverbindung zur Cloud-Server-Datenbank her

Es ist sehr praktisch, eine Verbindung zu einer R...

Implementierung der Breakpoint-Wiederaufnahme im Vue-Video-Player

In einem aktuellen Projekt musste ich die Funktio...

HTML+CSS zum Erreichen eines Surround-Reflexionsladeeffekts

In diesem Artikel wird hauptsächlich die Implemen...

Beispielcode zur Eingabe des Kennzeichens und der Provinzkürzel in html

Das Prinzip besteht darin, zuerst ein Div mit ein...

Einfache Schritte zum Erstellen eines MySQL-Containers mit Docker

Vorwort Wir haben Docker bereits installiert und ...

Docker verpackt das lokale Image und stellt es auf anderen Maschinen wieder her

1. Verwenden Sie Docker-Images, um alle Image-Dat...

Schaltflächen und Dropdown-Menüs für Studiennotizen in Bootstrap 3.0

Der vorherige Artikel war eine einfache Überprüfu...