Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Praktische Shell-Programmierung zur Sicherung von Website-Dateien und Datenbankdateien

Praktische Shell-Programmierung zur Sicherung von Website-Dateien und Datenbankdateien

齐天大圣
齐天大圣Original
2020-09-20 09:36:051407Durchsuche

Die Bedeutung der Dateisicherung liegt auf der Hand. Regelmäßige Sicherungen sind eine gute Angewohnheit, egal ob es sich um Website-Dateien oder alltägliche Fotos, Videos usw. handelt. Andernfalls erleben Sie bei einem Datenverlust die Verzweiflung, dass Sie die Daten nicht mehr zurückerhalten können. Der Autor hat es mehrmals persönlich erlebt. Das Schlimmste war, als alle Daten meines persönlichen Blogs über mehr als 7 Monate hinweg verloren gingen. Es war wirklich ein Gefühl, dass ich ohne Tränen weinen wollte.

Heute erzähle ich Ihnen, wie Sie ein Skript schreiben, um Website-Verzeichnisse und Datenbankdateien auf der Serverseite zu sichern. Zunächst müssen Sie einige Kenntnisse hinzufügen:

  • tar-Befehl, Dateikomprimierung und -verpackung

  • find-Befehl, Dateien suchen

  • bzip2, Dateikomprimierung

Um Platz zu sparen, haben wir Komprimieren Sie häufig Verzeichnisdateien. Führen Sie Komprimierungs- und Verpackungsvorgänge durch. Der Befehl bzip2 kann Dateien komprimieren, aber keine Verzeichnisse. Sie können den Befehl tar verwenden, um Verzeichnisse zu komprimieren und zu verpacken.

Da es sich bei der Datenbankdatei um eine separate SQL-Datei handelt, können Sie sie mit dem Befehl bzip2 komprimieren.

mysqldump -u用户名 -p密码 --all-databases | bzip2 > 备份目录/文件名

Die Website-Dateien müssen mit dem Befehl tar komprimiert werden.

tar -jcpf 备份目录/文件名  需备份的目录

Obwohl wir jeden Tag Backups durchführen, möchten wir nur die Backup-Datensätze der letzten sieben Tage speichern und die Backup-Daten von vor 7 Tagen werden automatisch gelöscht. Hier müssen wir den Befehl find verwenden, um die Sicherungsdatei von vor 7 Tagen zu finden und sie dann zu löschen.

find 备份目录 -mtime +7 -type f -exec rm -f {} \;

Beginnen wir formal mit dem Schreiben des Shell-Skripts. Zuerst müssen wir das Backup-Verzeichnis definieren. Wenn das Backup-Verzeichnis nicht existiert, müssen wir zuerst das Verzeichnis erstellen.

WWW_DIR=/home/wwwroot
BAK_DIR=/root/bak

if [ ! -d $BAK_DIR ];then
    mkdir $BAK_DIR
fi

Der nächste Schritt besteht darin, das Website-Verzeichnis und die Datenbankdateien zu sichern

tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null
mysqldump -uroot -p123456 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql

Zum Schluss löschen Sie einfach die Sicherungsdaten von vor sieben Tagen

find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;

Der vollständige Code ist unten aufgeführt:

#!/bin/bash
# 备份数据库文件及网站文件

WWW_DIR=/home/wwwroot
BAK_DIR=/root/bak

if [ ! -d $BAK_DIR ];then
    mkdir $BAK_DIR
fi

# 备份网站文件及数据库文件
tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null
mysqldump -uroot -pGuiyuan#520@1314 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql 

# 删除7天前的备份数据
find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;

Abschließend hoffe ich, dass jeder ihn entwickeln kann . Backup-Gewohnheiten. Zusätzlich zu den täglichen Backups auf dem Server wird auch empfohlen, die Daten einmal pro Woche vom Server auf die lokale Festplatte zu kopieren, um sicherzustellen, dass die Daten narrensicher sind.

Das obige ist der detaillierte Inhalt vonPraktische Shell-Programmierung zur Sicherung von Website-Dateien und Datenbankdateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn