--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/backup2Archiv2 Tue May 03 14:39:45 2016 +0200
@@ -0,0 +1,91 @@
+#! /bin/bash
+
+# Author: Heike Yvonne Pesch <pesch@schlittermann.de>
+# Company: schlittermann internet & unix support <http://schlittermann.de>
+# License: GPLv3 <http://www.gnu.org/licenses/gpl-3.0.html>
+
+BACKUPDIR="/home/samba/Archiv2"
+LOGFILE="/var/log/backup2Archiv-$(date -I)"
+LOGTAG="B2Archiv2"
+GROUP="Domain Users"
+
+if [ "$#" == "0" ]; then
+ echo "USAGE: $0 /path/to/backup"
+ echo;echo;
+ echo "NOTICE: It is best to do the backup from the parent dir of path"
+ echo " to backup"
+ exit 1
+fi
+
+if [ ! -e $LOGFILE ];then
+ touch $LOGFILE
+fi
+echo "BACKUP $(date)" >> $LOGFILE
+
+logger -t $LOGTAG "STARTING $0 $@"
+
+if [ ! -d $BACKUPDIR ]; then
+ logger "$BACKUPDIR does not exist"
+ exit 1
+fi
+if [ ! -w $BACKUPDIR ]; then
+ logger -t $LOGTAG "$BACKUPDIR is not writeable"
+ exit 1
+fi
+
+while (( "$#" )); do
+ if [ ! -e "$1" ]; then
+ logger "$1 does not exist"
+ exit 1
+ fi
+
+ PATH2BACKUP="$1"
+ SUBSTR=`expr match "$PATH2BACKUP" '\/*.*\/'`
+ NAME=${PATH2BACKUP:SUBSTR}
+ ARCHIV="$BACKUPDIR/$NAME.tar.xz"
+ ACLFILE="$PATH2BACKUP/$NAME.acls.txt"
+ ATTRFILE="$PATH2BACKUP/$NAME.attr.txt"
+
+ touch $ACLFILE && chmod go-rwx $ACLFILE
+ touch $ATTRFILE && chmod go-rwx $ATTRFILE
+
+
+ getfacl --recursive \
+ --logical \
+ --all-effective \
+ $PATH2BACKUP >> $ACLFILE 2>$LOGFILE
+ #$PATH2BACKUP >> $ACLFILE 2>&1
+
+ #find -L $PATH2BACKUP -type d -print0 |\
+ # xargs -0r lsattr >> $ATTRFILE 2>$LOGFILE
+ find -L $PATH2BACKUP -type f -print0 |\
+ xargs -0r lsattr >> $ATTRFILE 2>$LOGFILE
+
+ if [ -e "$ARCHIV" ]; then
+ ARCHIVNEW="$BACKUPDIR/$NAME.$(date -I).tar.xz"
+ logger -t $LOGTAG "$ARCHIV exists - renaming $ARCHIV to $ARCHIVNEW"
+ ARCHIV="$ARCHIVNEW"
+ fi
+
+ tar --create \
+ --dereference \
+ --preserve-permissions \
+ --acls \
+ --check-links \
+ --xattrs \
+ --verbose \
+ --totals \
+ --auto-compress \
+ --file "$ARCHIV" \
+ $PATH2BACKUP $ACLFILE\
+ >> $LOGFILE 2>&1
+
+ logger -t $LOGTAG "BACKUP $0 $PATH2BACKUP done to $ARCHIV"
+
+ rm $ACLFILE $ATTRFILE
+
+ shift
+done
+
+logger -t $LOGTAG "END $0"
+exit 0;