backup2Archiv2
changeset 0 71a3a2a6663d
child 1 cd277b242dca
equal deleted inserted replaced
-1:000000000000 0:71a3a2a6663d
       
     1 #! /bin/bash
       
     2 
       
     3 # Author: Heike Yvonne Pesch <pesch@schlittermann.de>
       
     4 # Company: schlittermann internet & unix support <http://schlittermann.de>
       
     5 # License: GPLv3 <http://www.gnu.org/licenses/gpl-3.0.html>
       
     6 
       
     7 BACKUPDIR="/home/samba/Archiv2"
       
     8 LOGFILE="/var/log/backup2Archiv-$(date -I)"
       
     9 LOGTAG="B2Archiv2"
       
    10 GROUP="Domain Users"
       
    11 
       
    12 if [ "$#" == "0" ]; then
       
    13   echo "USAGE: $0 /path/to/backup"
       
    14   echo;echo;
       
    15   echo "NOTICE: It is best to do the backup from the parent dir of path"
       
    16   echo "        to backup"
       
    17   exit 1
       
    18 fi
       
    19 
       
    20 if [ ! -e $LOGFILE ];then
       
    21   touch $LOGFILE
       
    22 fi
       
    23 echo "BACKUP $(date)" >> $LOGFILE
       
    24 
       
    25 logger -t $LOGTAG "STARTING $0 $@"
       
    26 
       
    27 if [ ! -d $BACKUPDIR ]; then
       
    28   logger "$BACKUPDIR does not exist"
       
    29   exit 1
       
    30 fi
       
    31 if [ ! -w $BACKUPDIR ]; then
       
    32   logger -t $LOGTAG "$BACKUPDIR is not writeable"
       
    33   exit 1
       
    34 fi
       
    35 
       
    36 while (( "$#" )); do
       
    37   if [ ! -e "$1" ]; then
       
    38     logger "$1 does not exist"
       
    39     exit 1
       
    40   fi
       
    41 
       
    42   PATH2BACKUP="$1"
       
    43   SUBSTR=`expr match "$PATH2BACKUP" '\/*.*\/'`
       
    44   NAME=${PATH2BACKUP:SUBSTR}
       
    45   ARCHIV="$BACKUPDIR/$NAME.tar.xz"
       
    46   ACLFILE="$PATH2BACKUP/$NAME.acls.txt"
       
    47   ATTRFILE="$PATH2BACKUP/$NAME.attr.txt"
       
    48 
       
    49   touch $ACLFILE && chmod go-rwx $ACLFILE
       
    50   touch $ATTRFILE && chmod go-rwx $ATTRFILE
       
    51   
       
    52 
       
    53   getfacl --recursive \
       
    54           --logical \
       
    55           --all-effective \
       
    56           $PATH2BACKUP >> $ACLFILE 2>$LOGFILE
       
    57           #$PATH2BACKUP >> $ACLFILE 2>&1
       
    58 
       
    59   #find -L $PATH2BACKUP -type d -print0 |\
       
    60   #  xargs -0r lsattr >> $ATTRFILE 2>$LOGFILE
       
    61   find -L $PATH2BACKUP -type f -print0 |\
       
    62     xargs -0r lsattr >> $ATTRFILE 2>$LOGFILE
       
    63 
       
    64   if [ -e "$ARCHIV" ]; then
       
    65     ARCHIVNEW="$BACKUPDIR/$NAME.$(date -I).tar.xz"
       
    66     logger -t $LOGTAG "$ARCHIV exists - renaming $ARCHIV to $ARCHIVNEW"
       
    67     ARCHIV="$ARCHIVNEW"
       
    68   fi
       
    69   
       
    70   tar --create \
       
    71       --dereference \
       
    72       --preserve-permissions \
       
    73       --acls \
       
    74       --check-links \
       
    75       --xattrs \
       
    76       --verbose \
       
    77       --totals \
       
    78       --auto-compress \
       
    79       --file "$ARCHIV" \
       
    80       $PATH2BACKUP $ACLFILE\
       
    81       >> $LOGFILE 2>&1 
       
    82       
       
    83   logger -t $LOGTAG "BACKUP $0 $PATH2BACKUP done to $ARCHIV"
       
    84 
       
    85   rm $ACLFILE $ATTRFILE
       
    86 
       
    87   shift
       
    88 done
       
    89 
       
    90 logger -t $LOGTAG "END $0"
       
    91 exit 0;