Verzeichnis-Backup-Skript – Kurzanleitung

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/