User Tools

Site Tools


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

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 90 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.
#
#
#
#
#######################################################################
# CONFIGURE HERE ! ! !
#######################################################################
#
# Enter retention time here! how long should i keep backup files before
# deleting them ?
#
RETENTIONDAYS='30'
 
 
#######################################################################
#######################################################################
 
 
if [ ! -d "$1" -o ! -d "$2" ] ; then
 
	cat << EOF
$0 - ERROR - Missing arguments.
 
Usage:
 
$0 /path/to/startingpoint /path/to/targetdir
 
 
EOF
	exit 1
 
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"
 
#echo "getfacl -R . > $DEST/$filename"
getfacl -R . > "$DEST/$filename" 2>/dev/null
gzip "$DEST/$filename"

Axel Werner 2010-12-30 19:55

it-artikel/linux/automatische-datensicherung-der-filesystem-acls-mit-hilfe-von-getfacl-anfertigen.txt · Last modified: 2019-05-18 14:08 by mail@awerner.myhome-server.de