So implementieren Sie geplante Sicherungen und inkrementelle Sicherungen hochgeladener Dateien in Linux

So implementieren Sie geplante Sicherungen und inkrementelle Sicherungen hochgeladener Dateien in Linux

einführen

Wenn Sie einen OSS-Speicherdienst wie Alibaba Cloud verwenden, können Sie die vom Dienst bereitgestellte geplante Sicherung verwenden, sodass Sie sich nicht um die Sicherung von Dateien auf dem Server kümmern müssen.

Tatsächlich ist es sehr einfach, eine grundlegende Sicherung durchzuführen. Normalerweise verwenden wir Befehle wie tar und unzip, um Dateien zu packen, schreiben auf dieser Grundlage ein Shell-Skript und verwenden die Crontab-Funktion von Linux, um ein zeitgesteuertes Ausführungsprogramm hinzuzufügen, sodass die Dateisicherung problemlos durchgeführt werden kann. Aber wird dieser Ansatz funktionieren, wenn die Dateigröße weiter zunimmt? Die Antwort ist eindeutig nein. Mit zunehmender Dateigröße steigt auch der belegte Speicherplatz. Das Komprimieren dieser einfachen Sicherungsmethode dauert zu lange und belegt zu viel Speicherplatz. Wie lässt sich dieses Problem also lösen? Durch inkrementelles Backup können wir die Zeit- und Platzprobleme vermeiden, die durch das jedesmalige Sichern und Komprimieren aller Dateien entstehen.

Nachfolgend wird die Implementierungsmethode beschrieben (Linux-Systemumgebung)

Bevor Sie das Skript schreiben, müssen Sie prüfen, ob auf dem Server eine Crontab-Funktion vorhanden ist.

Hinweis: Ich möchte diese Crontab-Funktion hier loben, sie ist wirklich praktisch

Verwenden Sie den Befehl rpm -qa|grep crontab, um zu überprüfen, ob crontab installiert ist.

Bildbeschreibung hier einfügen

Das Bild oben zeigt, dass es installiert wurde.

Wenn es nicht installiert ist, installieren Sie es mit dem Befehl yum

yum -y installiere vixie-cron
yum -y crontabs installieren

vixie-cron ist das wichtigste Cron-Programm;
crontabs ist ein Programm zum Installieren, Deinstallieren oder Auflisten der Tabellen, die zum Ausführen des Cron-Daemons verwendet werden.

Wenn es sich um eine Intranetumgebung handelt, können Sie das Offlineinstallationspaket finden, wenn Sie es offline installieren müssen.

1. Start: systemctl start crond.service

Bildbeschreibung hier einfügen

2. Überprüfen Sie den Status: systemctl status crond.service

Bildbeschreibung hier einfügen

Wie in der Abbildung oben gezeigt, läuft crontab bereits

Die folgenden Befehle werden häufig verwendet

systemctl start crond.service //Befehl startensystemctl status crond.service //Status prüfensystemctl stop crond.service //Befehl herunterfahrensystemctl restart crond.service //Neu startensystemctl enable crond.service //Starten und ausführen

Manche Leute benutzen den Befehl systemctl nicht, deshalb hier die üblichen Servicebefehle

service crond start //Dienst starten service crond stop //Dienst beenden service crond restart //Dienst neu starten service crond reload //Konfiguration neu laden service crond status //Status des Crontab-Dienstes prüfen

Erstellen einer Skriptdatei

vim Backup.sh

Skriptbefehl schreiben (Hinweis: Dieses Skript wurde im Internet gefunden und die Originalquelle wurde nicht gefunden)

#!/bin/bash
#Gute Praxis#Benennen Sie das Skript entsprechend dem Projekt um. #Zum Beispiel amountebak.sh oder pandawillsbak.sh
#Dieses Skript wird am besten im absoluten Pfadteil platziert, der durch $bakpp definiert ist. #Sie finden die entsprechende Sicherungsdatei unter $bakpp. #Beispielsweise /usr/backup/amountebak.sh oder /usr/backup/pandawillsbak.sh


########### Init-Pfad #########
# Die Parameter, die in den folgenden Parametern definiert werden müssen, sind $bakpp, $project, $projectpp
TAR=/bin/tar
# Der Ort zum Speichern der Sicherungsdateien, unterschieden durch den Projektnamen bakpp=/data/file_backup/"$project"
# Der zu sichernde Ordner, der Ordnerpfad project=file
projectpp=/Daten/
# Parameter für Variable
ym=`Datum +%Y%m`
ymd=`Datum +%Y%m%d`
# Das Unterverzeichnis zum Speichern von Sicherungsdateien ist nach Monaten unterteilt. Das übergeordnete Verzeichnis ist monthbakpp=$bakpp/$ym, definiert durch $bakpp
gidpp=$Monatsbericht
gidshot=gid$Projekt$ym
# Vollständiger Name der Sicherungsdatei fullname=$ym
#Inkrementeller Sicherungsdateiname incrementalname=$ymd
# Notieren Sie den Speicherort des Protokolls
log=$bakpp/$project.log

############### chk_full ##########################
# prüfen, ob ein Vollbackup vorhanden ist, wenn nicht, es erstellen. #diese Funktion prüft, ob die Vollbackup-Datei vorhanden ist oder nicht, wenn nicht, dann jetzt ein Vollbackup erstellen.

chk_full()
{
wenn [ -e "$monthbakpp"/"$project"_"$ym"_full.tar.gz ];dann
echo ""$project"_"$ym"_full.tar.gz-Datei vorhanden!! ====`date +%Y-%m-%d-%T` " >>$log
anders
tar_voll
fi
}
########## chk_incremental #########
# Prüfen, ob inkrementelles Backup vorhanden ist chk_incremental()
{
während [ -e "$monthbakpp"/"$project"_"$incrementalname"_incremental.tar.gz ]
Tun
inkrementellername=`echo "$inkrementellername + 0,1" | bc `
Erledigt
}
######## tar_inkrementell #######
# Führen Sie ein inkrementelles Backup durch tar_incremental()
{
cd $projektpp
echo "BEIGIN_TIME=====`Datum +%Y-%m-%d-%T` ==== ERSTELLEN "$project"_"$incrementalname"_incremental.tar.gz" >> $log
Schlaf 3
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$incrementalname"_incremental.tar.gz $project
echo "END_TIME========`Datum +%Y-%m-%d-%T` ==== ERSTELLEN "$project"_"$incrementalname"_incremental.tar.gz" >> $log
}

######### tar_voll ############
tar_full()
{
berühren $gidpp/$gidshot
cd $projektpp
echo "BEIGIN_TIME=====`Datum +%Y-%m-%d-%T` ==== ERSTELLEN "$project"_"$fullname"_full.tar.gz" >> $log
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$fullname"_full.tar.gz $project
echo "END_TIME========`Datum +%Y-%m-%d-%T` ==== CREATE "$project"_"$fullname"_full.tar.gz" >> $log
}

############ Sicherung #################################
# Gesamtaufruf für Backup, zu diesem Zeitpunkt werden entsprechende Prüfungen durchgeführt, um sicherzustellen, dass die Backup-Voraussetzungen vollständig vorbereitet sind backup()
{
wenn [ -d $monthbakpp ]; dann
 chk_full
 chk_incremental
 tar_incremental
anders
mkdir -p $bakpp/$ym
tar_voll
fi
}

############ fangen wir an ##############
# Prüfen Sie zunächst, ob $bakpp vorhanden ist. Wenn nicht, erstellen Sie es und sichern Sie es anschließend, wenn [ -d $bakpp ]; dann
Sicherung
anders
mkdir -p $bakpp
Sicherung
fi
#Hinweis: Sie können eine Datei zum Ablegen der Sicherungsdatei erstellen, z. B. /usr/cctcc
#crontab
#mini Stunden Tag Monat Woche Befehl
# */5 * * * * /home/mmroot/zbb/aaa.sh
# 0 1 */1 * * /home/mmroot/zbb/aaa.sh
# tar -ztf test.tar.gz Zeigen Sie die Dateien in der Sicherungsdatei an

Verwenden Sie den Befehl wq!, um die Datei zu speichern

Zu dieser Skriptdatei sind drei Dinge zu beachten:

#Der Ort, an dem die Sicherungsdateien gespeichert werden, unterschieden nach Projektnamen
bakpp=/Daten/Dateisicherung/"$Projekt"

#Der zu sichernde Ordner, der Pfad des Ordners
project=Datei
projectpp=/Daten/

Die drei oben genannten Pfade sollten entsprechend Ihrer spezifischen Situation geändert werden

Geplante Aufgabe hinzufügen: Geben Sie den Befehl ein

crontab -e

Aufgabenbeispiel

05 03 * * * cd /data/dateisicherung/;sh dateisicherung.sh

Verwenden Sie dann crontab -l, um es anzuzeigen.
Nachdem die Sicherung abgeschlossen ist, können Sie mit dem Befehl die Dateien in der Sicherungsdatei anzeigen.

tar -ztf file.tar.gz //Sicherungsdatei anzeigen

OK, das war’s zum Thema geplante und inkrementelle Sicherung.

Beachten Sie hierbei: Sicherer ist es, einen anderen Server als Dateisicherungsspeicherserver zu finden. Nachdem die geplante Sicherung und die inkrementelle Sicherung auf dem lokalen Computer abgeschlossen sind, werden die Dateien auf den Dateisicherungsspeicherserver übertragen. Dadurch wird sichergestellt, dass die Backup-Funktion bei einem Festplattenschaden erhalten bleibt.

Dies ist das Ende dieses Artikels über die Implementierung von geplanten Backups und inkrementellen Backups hochgeladener Dateien in Linux. Weitere relevante Inhalte zum Backup hochgeladener Dateien in Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Xshell implementiert die Methode zum Hochladen von Dateien von Windows auf den Linux-Host
  • Detaillierte Anwendung des Befehls „get“ zum Herunterladen von Dateien und „put“ zum Hochladen von Dateien in der Linux-FTP-Befehlszeile
  • So verwenden Sie FTP auf dem Windows-Desktop, um Dateien auf einen Linux-Server hochzuladen
  • Verwenden von WinSCP und Stapelverarbeitung unter Windows zum Hochladen von Dateien auf einen Linux-Server über den SSH-Port
  • Linux führt jeden Tag eine automatische und geplante Sicherung der MySQL-Datenbank durch
  • Linux-Shell zum Implementieren einer täglich geplanten Sicherung der MySQL-Datenbank
  • MySQL-geplante Sicherung mit Crontab-geplantem Sicherungsbeispiel unter Linux
  • Tutorial zur Sicherung von Linux-VPS-Datenbanken/Websitedateien – automatisches zeitgesteuertes Backup

<<:  Detailliertes Grafik- und Text-Tutorial zum Herunterladen, Installieren und Konfigurieren von mysql-5.7.28 unter Windows

>>:  Vue implementiert die Lupenfunktion der Produktdetailseite

Artikel empfehlen

Drei Beispiele für Unschärfe-Hintergrundeffekte mit CSS3

Beginnen wir nicht mit der Einleitung, sondern ko...

Formel und Berechnungsmethode zur Schätzung der Server-Parallelität

Vor Kurzem musste ich den Server erneut einem Str...

Was bedeutet das „a“ in rgba? CSS RGBA-Farbleitfaden

RGBA ist eine CSS-Farbe, mit der Farbwert und Tra...

Vorteile und Nachteile des MySQL Advanced Learning Index sowie Nutzungsregeln

1. Vor- und Nachteile von Indizes Vorteile: schne...

Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten

Mysql konvertiert Abfrageergebnissatz in JSON-Dat...

Implementierung von MySQL-indexbasierten Stresstests

1. Datenbankdaten simulieren 1-1 Datenbank- und T...

Detaillierte Erklärung zur Verwendung von ES6 Promise

Inhaltsverzeichnis Was ist ein Versprechen? Verwe...

So installieren Sie Nginx an einem bestimmten Ort im Centos-System

Wie installiere ich Nginx an einem bestimmten Ort...

ThingJS-Partikeleffekte, um Regen- und Schneeeffekte mit einem Klick zu erzielen

Inhaltsverzeichnis 1. Partikeleffekte 2. Laden Si...

10 sehr gute CSS-Fähigkeiten sammeln und teilen

Hier können Sie durch geschickten Einsatz von CSS-...

So löschen und deinstallieren Sie MySQL in Windows 10 vollständig

Vorwort Dieser Artikel enthält eine Anleitung zum...