2 |
2 |
3 # Author: Heike Yvonne Pesch <pesch@schlittermann.de> |
3 # Author: Heike Yvonne Pesch <pesch@schlittermann.de> |
4 # Company: schlittermann internet & unix support <http://schlittermann.de> |
4 # Company: schlittermann internet & unix support <http://schlittermann.de> |
5 # License: GPLv3 <http://www.gnu.org/licenses/gpl-3.0.html> |
5 # License: GPLv3 <http://www.gnu.org/licenses/gpl-3.0.html> |
6 |
6 |
7 BACKUPDIR="/home/samba/Archiv2" |
7 set -e |
8 LOGFILE="/var/log/backup2Archiv-$(date -I)" |
8 LC_ALL=POSIX |
9 LOGTAG="B2Archiv2" |
|
10 GROUP="Domain Users" |
|
11 |
9 |
12 if [ "$#" == "0" ]; then |
10 BACKUPDIR=/home/samba/Archiv2 |
13 echo "USAGE: $0 /path/to/backup" |
11 LOGFILE=/var/log/backup2Archiv-$(date -I) |
14 echo;echo; |
12 LOGTAG=B2Archiv2 |
15 echo "NOTICE: It is best to do the backup from the parent dir of path" |
13 GROUP='Domain Users' |
16 echo " to backup" |
14 |
|
15 if [ $# == 0 ]; then |
|
16 cat <<_ |
|
17 Usage: $0 /path/to/backup... |
|
18 _ |
17 exit 1 |
19 exit 1 |
18 fi |
20 fi |
19 |
21 |
20 if [ ! -e $LOGFILE ];then |
22 echo "BACKUP $(date)" >> "$LOGFILE" |
21 touch $LOGFILE |
23 |
|
24 logger -t "$LOGTAG" "STARTING $0 $@" |
|
25 |
|
26 # vielleicht lieber die Variable testen |
|
27 if [ -z "$BACKUPDIR" ]; then |
|
28 logger "$BACKUPDIR variable is empty!" |
|
29 exit 1 |
22 fi |
30 fi |
23 echo "BACKUP $(date)" >> $LOGFILE |
|
24 |
31 |
25 logger -t $LOGTAG "STARTING $0 $@" |
32 # FIXME: Quoten! |
26 |
33 |
27 if [ ! -d $BACKUPDIR ]; then |
34 if [ ! -d $BACKUPDIR ]; then |
28 logger "$BACKUPDIR does not exist" |
35 logger "$BACKUPDIR does not exist" |
29 exit 1 |
36 exit 1 |
30 fi |
37 fi |
31 if [ ! -w $BACKUPDIR ]; then |
38 if [ ! -w $BACKUPDIR ]; then |
32 logger -t $LOGTAG "$BACKUPDIR is not writeable" |
39 logger -t $LOGTAG "$BACKUPDIR is not writeable" |
33 exit 1 |
40 exit 1 |
34 fi |
41 fi |
35 |
42 |
|
43 umask 077 |
|
44 |
36 while (( "$#" )); do |
45 while (( "$#" )); do |
37 if [ ! -e "$1" ]; then |
|
38 logger "$1 does not exist" |
|
39 exit 1 |
|
40 fi |
|
41 |
46 |
42 PATH2BACKUP="$1" |
47 PATH2BACKUP="$1" |
43 SUBSTR=`expr match "$PATH2BACKUP" '\/*.*\/'` |
48 # tar wird doch auch feststellen, dass was fehlt |
44 NAME=${PATH2BACKUP:SUBSTR} |
49 #if [ ! -e "$PATH2BACKUP" ]; then |
|
50 # logger "$1 does not exist" |
|
51 # exit 1 |
|
52 #fi |
|
53 |
|
54 NAME=$(basename "$PATH2BACKUP") |
45 ARCHIV="$BACKUPDIR/$NAME.tar.xz" |
55 ARCHIV="$BACKUPDIR/$NAME.tar.xz" |
46 ACLFILE="$PATH2BACKUP/$NAME.acls.txt" |
56 ACLFILE="$PATH2BACKUP/$NAME.acls" |
47 ATTRFILE="$PATH2BACKUP/$NAME.attr.txt" |
57 ATTRFILE="$PATH2BACKUP/$NAME.attr" |
48 |
|
49 touch $ACLFILE && chmod go-rwx $ACLFILE |
|
50 touch $ATTRFILE && chmod go-rwx $ATTRFILE |
|
51 |
|
52 |
58 |
53 getfacl --recursive \ |
59 getfacl --recursive \ |
54 --logical \ |
60 --logical \ |
55 --all-effective \ |
61 --all-effective \ |
56 $PATH2BACKUP >> $ACLFILE 2>$LOGFILE |
62 $PATH2BACKUP >> $ACLFILE 2>$LOGFILE |