[LINUX] Sichern von Servermaterialien mithilfe von Shell-Skripten (mit Dateierzeugungsverwaltung)

Überblick

Fazit

backup.sh


#!/bin/sh -u

#Legen Sie das aktuelle Verzeichnis am Speicherort des Skripts fest
cd `dirname $0`

#Holen Sie sich die Startzeit für die Verarbeitung
todaydatetime="date '+%Y-%m-%d %H:%M:%S'"
echo "Führen Sie die Sicherungsdateiverarbeitung durch"
eval $todaydatetime

#Starten Sie die Messung der Verarbeitungszeit
SECONDS=0

#Sicherungsziel
TARGET_DIR='/home/origin'

#Verzeichnis zum Speichern von Sicherungsdateien
backupdirpath="/home/backup"

##Verzeichnis-Existenzprüfung
if [ -d ${backupdirpath} ]; then
    #Wenn das Sicherungsverzeichnis vorhanden ist
    #Zeigen Sie die Liste der gespeicherten Dateien an
    ls -lrth ${backupdirpath}
else
    echo "Es gibt kein Sicherungsverzeichnis. Der Prozess endet."
    eval $todaydatetime
    exit 1
fi

#Definieren Sie den Namen der Sicherungsdatei(* Stellen Sie sicher, dass Sie das Datum anhand des Dateinamens kennen.)
BACKUP_FILE_NAME=`date +%y%m%d`

#Erstellungsprozess der Sicherungsdatei
tar czfp $BACKUP_FILE_NAME.tar.gz $TARGET_DIR
mv $BACKUP_FILE_NAME.tar.gz $BACKUP_DIR

#Generierungsverwaltung von Sicherungsdateien in einem lokalen Sicherungsordner
tgtfile="${backupdirpath}/backup_????-??-??.tar.gz"
chkage=$(ls -1 ${tgtfile}|wc -l)

#Legen Sie die Anzahl der Speichergenerationen fest
age="5"
##Zum Extrahieren und Löschen des sechsten und nachfolgender Elemente mit dem Befehl tail
##Der in der Variablen festgelegte Wert lautet "Anzahl der Speichergenerationen".+1 ”
tailage="+6"

#Liste der zu löschenden Dateien
delfilelist=$(ls -1 -t ${tgtfile}|tail -n ${tailage})

##Beurteilung der Notwendigkeit der Löschung von Dateien
if [[ ${chkage} -gt $age ]]; then
    #Wenn die Anzahl der Sicherungsdateien größer als die Anzahl der Speichergenerationen ist
    #Sortieren Sie in umgekehrter Reihenfolge und löschen Sie die letzten 5 Generationen
    echo "Anzahl der im Ordner gespeicherten Generationen:${chkage}"
    echo "Anzahl der Speichergenerationen${age}Löschen Sie alte Dateien, wenn sie überschritten werden"
    echo "Zu löschende Dateien:${delfilelist}"
    echo "Altes Backup löschen"
    rm -f ${delfilelist}
else
    echo "Es gibt keine unnötigen Sicherungsdateien. Der Prozess endet."
    eval $todaydatetime
    exit 1
fi

#Holen Sie sich die Endzeit der Verarbeitung
echo "Beenden Sie die Verarbeitung der Sicherungsdatei"
eval $todaydatetime

#Messung der Verarbeitungsende
echo "Ausführungszeit verarbeiten:${SECONDS}Sekunden"

Bonus (Shell-Skript, das tägliche Sicherungsprotokolle erstellt)

top_backup.sh


#!/bin/sh -u

cd `dirname $0`

#Übergeordnetes Skript, das das Sicherungsskript steuert
sh ./backup.sh > logfile_`date "+%Y-%m-%d"`.log 2>&1

#Alte Protokolldatei löschen
tgtfile="./logfile_????-??-??.log"
chkage=$(ls -1 ${tgtfile}|wc -l)
#Legen Sie die Anzahl der Speichergenerationen fest
age="5"
##Zum Extrahieren und Löschen des sechsten und nachfolgender Elemente mit dem Befehl tail
##Der in der Variablen festgelegte Wert lautet "Anzahl der Speichergenerationen".+1 ”
tailage="+6"
#Liste der zu löschenden Dateien
delfilelist=$(ls -1 -t ${tgtfile}|tail -n ${tailage})

if [[ ${chkage} -gt $age ]]; then
    #Wenn die Anzahl der Sicherungsdateien größer als die Anzahl der Speichergenerationen ist
    #Sortieren Sie in umgekehrter Reihenfolge und löschen Sie die letzten 5 Generationen
    echo "Zu löschende Dateien:${delfilelist}"
    echo "Alte Protokolldatei löschen"
    rm -f ${delfilelist}
else
    exit 1
fi

Recommended Posts

Sichern von Servermaterialien mithilfe von Shell-Skripten (mit Dateierzeugungsverwaltung)
Serververwaltung mit Jupyter (1) -Import
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
Bearbeiten Sie die Datei des SSH-Verbindungszielservers auf dem Server mit VS-Code