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"
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