Veröffentlichung 3. August 2018 @ 12:56
Letzte Änderung 24. April 2021 @ 18:29
Überblick
- Lokale Sicherung von Verzeichnissen
- Automatisches Löschen alter Backup-Dateien
Voraussetzungen
Netzwerk
- Benutzer root
- Verzeichnis /root/example
Software
- Ubuntu Server 16.04.04 LTS #lsb_release -a
Ordner und Dateien
- Backup /root/backup/example.tar.gz, /root/backup/example/example*.tar.gz
- Skript /root/scripts/backup_directory.sh
Bash-Skript zur lokalen Sicherung von Verzeichnissen erstellen
Backup-Skript anlegen
DIRECTORY=$1 #Verzeichnisname BACKUPNAME=$2 #Backup-Name BACKUPDIR=$3 #Backup-Hauptverzeichnis USERGROUP=$4 #Benutzer und Gruppe der Backup-Datei BACKUPMAXAGE=$5 #maximales Alter der Backup-Dateien in Tagen DATETIME="$(date +%Y-%m-%d-%H-%M-%S)" #aktuelles Datum und aktuelle Uhrzeit if [ ! -d "$BACKUPDIR/$BACKUPNAME" ]; then mkdir --mode=0700 $BACKUPDIR/$BACKUPNAME chown $USERGROUP:$USERGROUP $BACKUPDIR/$BACKUPNAME fi find $BACKUPDIR/$BACKUPNAME -mtime +$BACKUPMAXAGE -name "$BACKUPNAME-*.tar.gz" -type f -exec rm {} \; #Verzeichnis mit allen Unterverzeichnissen, die nicht Datei CACHEDIR.TAG enthalten, sichern tar --create --directory=/ --exclude-caches --file=$BACKUPDIR/$BACKUPNAME/$BACKUPNAME-$DATETIME.tar.gz --gzip ${DIRECTORY:1}/ ln -fs $BACKUPDIR/$BACKUPNAME/$BACKUPNAME-$DATETIME.tar.gz $BACKUPDIR/$BACKUPNAME.tar.gz chown -h $USERGROUP:$USERGROUP $BACKUPDIR/$BACKUPNAME/$BACKUPNME-$DATETIME.tar.gz $BACKUPDIR/$BACKUPNAME.tar.gz chmod 0600 $BACKUPDIR/$BACKUPNAME/$BACKUPNAME-$DATETIME.tar.gz
Zugriffsrechte anpassen
chmod 0700 /root/scripts/backup_directory.sh
Beispiel
Verzeichnis /root/example sichern
/root/scripts/backup_directory.sh /root/example example /root/backup root 30
Aktuelles Verzeichnis-Backup rücksichern
tar --directory=/ --extract --file=/root/backup/example.tar.gz --gzip
Quellen
http://www.bford.info/cachedir/
https://www.gnu.org/software/bash/manual/
https://www.gnu.org/software/tar/manual/