====== Automatische Datensicherung der Filesystem ACLs mit Hilfe von getfacl anfertigen ====== Mit Hilfe dieses Scriptes sicherer ich bei meinem Linux LDAP/SAMBA Projekt regelmäßig die Filesystem-ACLs auf den wichtigsten Datenvolumes. Die daraus entstehenden Backup Files lassen sich mit sehr wenig Aufwand wieder ins Filesystem zurückschreiben. Mehr Infos darüber findet man in der man page der Tools getfacl und setfacl. ==== /usr/local/sbin/backup-acls.sh ==== #!/bin/bash # # Dieses Script sichert die aktuellen Linux Filesystem Berechtigungen in eine # ASCII Datei. Mit Hilfe dieser Sicherungsdatei ist es sehr schnell möglich # eine ACL Struktur ab der Sicherungsstelle wiederherzustellen. # # Die Sicherungsdateien werden zugleich gziped und mit Datum versehen. # Alte Sicherungsdateien welche älter sind als XXX Tage werden automatisch # aus dem Ziel-Dir gelöscht. Wie lange die Sicherungen aufbewahrt werden sollen # lässt sich über den Parameter RETENTIONDAYS definieren. (Default 30 tage) # # Wiederherstellung durch: cd sicherungsort ; setfacl --restore sicherungsdatei.facl # # Usage: # # backup-acls.sh /absopfad/startpunkt /absopfad/ziel/der/sicherung # z.B. backup-acls.sh /home /root/ACL-BACKUPS # # WICHTIG: DIE DIRS OHNE TRAILING SLASH ANGEBEN!! # # # Letzte Änderungen: # ======================== # 2009-07-27 A.Werner erste version # # 2009-09-24 A.Werner ADD: retention time parameter hinzugefügt # damit lässt sich definieren wie lange backup # files aufbewahrt werden sollen. # Default 90 Tage # # 2009-11-02 A.Werner FIX: cat $file | xargs > $file führt zu leerer # Datei. Separate temp Datei eingeführt. # # 2019-12-28 A.Werner CHANGE: usage Ausgabe nur noch wenn Anzahl # Argumente ungleich zwei. Bessere Fehlermeldung # wenn einer der Pfade nicht existent ist. # FIX: Script Beschreibung gefixed # FIX: Fehlerausgabe erfolgt nun auf # Fehlerkanal 2. # # # # ####################################################################### # CONFIGURE HERE ! ! ! ####################################################################### # # Enter retention time here! how long should i keep backup files before # deleting them ? # RETENTIONDAYS='30' ####################################################################### ####################################################################### function showUsage { cat >&2 << EOF $0 - ERROR - Missing arguments. Usage: $0 /path/to/startingpoint /path/to/targetdir EOF exit 1 } if [ $# -lt 2 ] ; then showUsage elif [ ! -d "$1" -o ! -d "$2" ] ; then echo "$0:ERROR: One or both arguments are not of type directory or are non existent." >&2 exit 2 fi date=`date +%F-%H%M` SOURCE="`dirname $1`/`basename $1`" DEST="`dirname $2`/`basename $2`" ############# #### Delete older files that exceed the retention time ############# OLDFILES=`mktemp` MYARGS=`mktemp` find "$DEST" -mtime +"$RETENTIONDAYS" >"$OLDFILES" #echo "DEBUG: ES WURDEN `cat $OLDFILES | wc -l` UEBERALTE FILES GEFUNDEN." if [ $(cat $OLDFILES | wc -l) -gt 0 ]; then cat $OLDFILES | xargs >"$MYARGS" rm `cat "$MYARGS"` fi # cleaning temp files rm "$OLDFILES" rm "$MYARGS" ############# filename=`echo $SOURCE | tr '/' '-'` filename="facl-backup-${filename}--${date}.facl" cd "$SOURCE" getfacl -R . > "$DEST/$filename" 2>/dev/null gzip "$DEST/$filename" --- //[[mail@awerner.myhome-server.de|Axel Werner]] 2019-12-28 19:05// {{tag>debian 5 lenny linux samba acl acls getfacl setfacl filesystem berechtigungen dasi automatische backup datensicherung dump articles artikel scripting shell bash}}