# HG changeset patch # User pesch # Date 1462279185 -7200 # Node ID 71a3a2a6663d66b1a8922a862c19fbc32b5ef67b first check in diff -r 000000000000 -r 71a3a2a6663d Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Tue May 03 14:39:45 2016 +0200 @@ -0,0 +1,18 @@ +# Makefile for backup2Archiv2 +# Author: Heike Yvonne Pesch + +INSTALL_PATH=/usr/local/sbin +INSTALL_LIST= backup2Archiv2 + +list: + @echo "USAGE: make [install|clean]" + +install: + @test -d $(INSTALL_PATH) || mkdir $(INSTALL_PATH) + @chmod 2755 $(INSTALL_PATH) + @chgrp staff $(INSTALL_PATH) + @umask 003; cp --target-directory=$(INSTALL_PATH) $(INSTALL_LIST) + @chmod 555 $(INSTALL_PATH)/* + +clean: + @cd $(INSTALL_PATH); rm -f $(INSTALL_LIST) diff -r 000000000000 -r 71a3a2a6663d backup2Archiv2 --- /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 +# Company: schlittermann internet & unix support +# License: GPLv3 + +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;