it-artikel:linux:automatische-datensicherung-der-filesystem-acls-mit-hilfe-von-getfacl-anfertigen

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

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"

Axel Werner 2019-12-28 19:05

it-artikel/linux/automatische-datensicherung-der-filesystem-acls-mit-hilfe-von-getfacl-anfertigen.txt · Last modified: 2022-08-31 12:30 by 127.0.0.1