Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Praktische Shell-Programmierung zur Sicherung von Website-Dateien und Datenbankdateien
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!