|
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; |