X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=backup.sh;h=3374865499a92542ec2baa7b2ff4f3318c1a5920;hb=8a731a3733b619b48997bb9cf4fe72a06a8ab643;hp=19a49244b9beab3a2048fac40ae0a72866a637a0;hpb=af7c867e58a6938de5e9fbec7a7a1c0bacd3256c;p=backup.sh diff --git a/backup.sh b/backup.sh index 19a4924..3374865 100755 --- a/backup.sh +++ b/backup.sh @@ -54,17 +54,26 @@ backup() if [ "$backuplevel" = "daglig" ] || [ "$backuplevel" = "incremental" ] then - forrige=`cat ../.date` - forrigecmd="--newer=\"$forrige\"" + lastd=`cat ../.date` + lastcmd="--newer=\"$lastd\"" else - forrigecmd="" + lastcmd="" fi + #if this client has a special tar + #we need to find a better solution to this conf-issue + if [ -f $confdir/tar.$computer ] ; then + tar=`cat $confdir/tar.$computer` + else + tar=tar + fi + + #expand the exclude-path for use with tar + exf=`ssh $computer "ls ~/.backup/exclude"` + #We try to run tar on the remote computer - if `ssh $computer ". /tmp/.backup/env ;\ - cd $filesystem ;\ - tar cfl - . $forrigecmd \ - --exclude-from=/tmp/.backup/exclude \ + if `ssh $computer "$tar cfCl - $filesystem . $lastcmd \ + --exclude-from=$exf \ | gzip" \ | dd of=$DATE.tmp 2>/dev/null` then @@ -99,33 +108,26 @@ do filesystems="" #Sjekker nest siste felt i fstab. Om det er 0 tar vi ikke backup - filesystems=`ssh -n $computer ". /tmp/.backup/env ; cat /etc/fstab" \ + filesystems=`ssh -n $computer "cat /etc/fstab" \ | grep -v nfs \ | grep -v ^# \ | awk '{ if ( $(NF-1) != "0" ) print $2}' ` #clean up our dir at this client - ssh $computer "rm -rf /tmp/.backup ; mkdir -m 700 /tmp/.backup" + ssh $computer "rm -r ~/.backup ; mkdir -m 700 ~/.backup" #try to copy $exclude to $computer - scp $exclude $computer:/tmp/.backup/exclude || + scp $exclude $computer:~/.backup/exclude || echo "could not copy exclude.txt to $computer :(" - #create env if it does not exist - if [ ! -f $confdir/env.$computer ] - touch $confdir/env.$computer - - #copy env to client - scp $confdir/env.$computer $computer:/tmp/.backup/env - #try to copy preeexec and postexec if they exist [ -f $confdir/preexec.$computer ] && - scp $confdir/preexec.$computer $computer:/tmp/.backup/preexec + scp $confdir/preexec.$computer $computer:~/.backup/preexec [ -f $confdir/postexec.$computer ] && - scp $confdir/postexec.$computer $computer:/tmp/.backup/postexec + scp $confdir/postexec.$computer $computer:~/.backup/postexec #try to run preexec if it exist - ssh $computer ". /tmp/.backup/env ; [ -f /tmp/.backup/preexec ] && /bin/bash -x /tmp/.backup/preexec" + ssh $computer "[ -f ~/.backup/preexec ] && /bin/bash -x ~/.backup/preexec" for filesystem in $filesystems do @@ -184,13 +186,13 @@ do done #try to run postexec if it exist - ssh $computer ". /tmp/.backup/env ; [ -f /tmp/.backup/postexec ] && /bin/bash -x /tmp/.backup/postexec" + ssh $computer "[ -f ~/.backup/postexec ] && /bin/bash -x ~/.backup/postexec" done #create report /home/backup/report.sh $storagedir > /tmp/report.txt -[ ! -z $remotestat ] && scp /tmp/report.txt $remotestat +#[ ! -z $remotestat ] && scp /tmp/report.txt $remotestat ### date