Heim >Datenbank >MySQL-Tutorial >Details zur automatischen Shell-Skript-Sicherung der MySQL-Datenbank
In diesem Artikel werden hauptsächlich relevante Informationen zum automatischen Shell-Skript-Backup der MySQL-Datenbank vorgestellt. Es gibt eine Funktionsschaltfläche zum Sichern der Datenbank im Hintergrund der Website oder Anwendung, die jedoch manuell ausgeführt werden muss. Wir brauchen eine sichere Methode zur automatischen täglichen Sicherung
Shell-Skript zur automatischen Sicherung der MySQL-Datenbank
Es ist eine gute Angewohnheit, Ihre Datenbank zu sichern. Obwohl die Wahrscheinlichkeit einer Datenbankbeschädigung oder eines Datenverlusts gering ist, hat es keinen Sinn, es zu bereuen. Im Allgemeinen gibt es eine Funktionsschaltfläche zum Sichern der Datenbank im Hintergrund einer Website oder Anwendung, die jedoch manuell ausgeführt werden muss. Wir brauchen eine sichere, automatisierte tägliche Backup-Methode. Mit dem folgenden Shell-Skript können Sie Ihre MySQL-Datenbank täglich sichern, indem Sie Crontab festlegen.
#!/bin/bash # 数据库认证 user="" password="" host="" db_name="" # 其它 backup_path="/path/to/your/home/_backup/mysql" date=$(date +"%d-%b-%Y") # 设置导出文件的缺省权限 umask 177 # Dump数据库到SQL文件 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 Name der Datei wird basierend auf dem Datum des Tages generiert. Im Laufe der Zeit werden viele solcher Dateien generiert und es ist notwendig, einige alte Sicherungsdateien regelmäßig zu löschen. Die folgende Befehlszeile erledigt diese Aufgabe. Sie können sie nach dem obigen Skript hinzufügen.
# 删除30天之前的就备份文件 find $backup_path/* -mtime +30 -exec rm {} \;
Ich bin einmal auf ein Problem gestoßen, als Crontab beim regelmäßigen Ausführen des Skriptexports keinen Fehler gemeldet hat, der Export jedoch eine leere SQL-Datei war, um mich manuell anzumelden Führen Sie das Skript aus. Die Sicherung war erfolgreich. Später wurde festgestellt, 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 es keine Fehlermeldung gibt, liegt darin, dass mysqldump die Fehlermeldung an stderr ausgibt. Wenn Sie „2>&1“ am Ende des Befehls hinzufügen, können Sie die Fehlermeldung über einen Informationsumleitungsbefehl sehen:
mysqldump -ujoe -ppassword > /tmp/somefile 2>&1
Das obige ist der detaillierte Inhalt vonDetails zur automatischen Shell-Skript-Sicherung der MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!