X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=bin%2Fbackup;h=540cd998e383c6d4e15240fccf5286ce7a1e9704;hb=fb85abfb86cebe9ea6f850b8dfb62b66fd719322;hp=4489388ed213b91a74d9e4f515bca478bc3e84be;hpb=49bb0cd550add3fc0a2339c555daf7f94c8ff83b;p=outofuni%2Fbackup.git diff --git a/bin/backup b/bin/backup index 4489388..540cd99 100755 --- a/bin/backup +++ b/bin/backup @@ -17,21 +17,21 @@ fi config=$1 -host=`grep ^host $config | cut -d ' ' -f 2` -aliases="`grep ^aliases $config | cut -d ' ' -f 2-`" -user=`grep ^user $config | cut -d ' ' -f 2` -homedirs="` grep ^homedirs $config | cut -d ' ' -f 2-`" -extradirs="`grep ^extradirs $config | cut -d ' ' -f 2-`" -replicas=`grep ^replicas $config | cut -d ' ' -f 2` -oldest=`grep ^oldest $config | cut -d ' ' -f 2` -data=`grep ^data $config | cut -d ' ' -f 2` -bandwidth=`grep ^bandwidth $config | cut -d ' ' -f 2` -bwconn="`grep ^bandwidth $config | cut -d ' ' -f 3-`" -compression=`grep ^compression $config | cut -d ' ' -f 2` -compconn="`grep ^compression $config | cut -d ' ' -f 3-`" -cipher=`grep ^cipher $config | cut -d ' ' -f 2` -ciconn=`grep ^cipher $config | cut -d ' ' -f 3-` -logdir=`grep ^logdir $config | cut -d ' ' -f 2` +host=`grep ^host $config | cut -s -d ' ' -f 2` +aliases="`grep ^aliases $config | cut -s -d ' ' -f 2-`" +user=`grep ^user $config | cut -s -d ' ' -f 2` +homedirs="` grep ^homedirs $config | cut -s -d ' ' -f 2-`" +extradirs="`grep ^extradirs $config | cut -s -d ' ' -f 2-`" +replicas=`grep ^replicas $config | cut -s -d ' ' -f 2` +oldest=`grep ^oldest $config | cut -s -d ' ' -f 2` +data=`grep ^data $config | cut -s -d ' ' -f 2` +bandwidth=`grep ^bandwidth $config | cut -s -d ' ' -f 2` +bwconn="`grep ^bandwidth $config | cut -s -d ' ' -f 3-`" +compression=`grep ^compression $config | cut -s -d ' ' -f 2` +compconn="`grep ^compression $config | cut -s -d ' ' -f 3-`" +cipher=`grep ^cipher $config | cut -s -d ' ' -f 2` +ciconn=`grep ^cipher $config | cut -s -d ' ' -f 3-` +logdir=`grep ^logdir $config | cut -s -d ' ' -f 2` dolog=0 if [ ! -z "$logdir" ]; then @@ -55,7 +55,7 @@ else log "host $host (via $remote) is online ..." fi -if [ ! -z "`ssh $user@$remote 'cat ~/.backup | grep ^no'`" ]; then +if [ ! -z "`ssh $user@$remote 'cat ~/.backup | grep ^off'`" ]; then log "backup rejected by client ..." exit 0 fi @@ -64,9 +64,9 @@ comp=6 if [ ! -z "$compression" ]; then comp=$compression for cpair in "$compconn"; do - ch=`echo $cpair | cut -d ':' -f 1` + ch=`echo $cpair | cut -s -d ':' -f 1` if [[ "$remote" == "$ch"* ]]; then - cl=`echo $cpair | cut -d ':' -f 2` + cl=`echo $cpair | cut -s -d ':' -f 2` [[ "$cl" == [0-9] ]] && comp=$cl fi done @@ -78,9 +78,9 @@ bw=0 if [ ! -z "$bandwidth" ]; then bw=$bandwidth for bwpair in "$bwconn"; do - ch=`echo $bwpair | cut -d ':' -f 1` + ch=`echo $bwpair | cut -s -d ':' -f 1` if [[ "$remote" == "$ch"* ]]; then - bwl=`echo $cpair | cut -d ':' -f 2` + bwl=`echo $cpair | cut -s -d ':' -f 2` [ ! -z "$bwl" ] && bw=$bwl fi done @@ -92,9 +92,9 @@ ciph="" if [ ! -z "$cipher" ]; then ciph=$cipher for cipair in "$ciconn"; do - ch=`echo $cipair | cut -d ':' -f 1` + ch=`echo $cipair | cut -s -d ':' -f 1` if [[ "$remote" == "$ch"* ]]; then - cl=`echo $cipair | cut -d ':' -f 2` + cl=`echo $cipair | cut -s -d ':' -f 2` [ ! -z "$cl" ] && ciph=$cl fi done @@ -133,7 +133,7 @@ done if [ ! -d $cbd ]; then if [ ! -z "$lpb" ]; then - cp -r $lpb $cbd + cp -al $lpb $cbd log starting backup $today from $lpb ... else mkdir -p $cbd @@ -161,11 +161,13 @@ if [ ! -f $backupdir/.$today ]; then rsync=(rsync -aR -e "ssh -c $ciph" $rcomp --delete) rsync+=($rbw $user@$remote$rsrc $cbd) fi - "${rsync[@]}" + res=`"${rsync[@]}" 2>&1` ret=$? if [ "$ret" != "0" ]; then log backup terminated before completion ... + log reason: + log $res exit -50 fi @@ -181,7 +183,7 @@ fi cob=`echo $ob | wc -w` if [ $cob -gt $replicas ]; then ((numdel=cob-replicas)) - todel="`echo $ob | cut -d ' ' -f 1-${numdel}`" + todel="`echo $ob | cut -s -d ' ' -f 1-${numdel}`" for dirdel in $todel; do past=`basename $dirdel` ns=`date --date="$today" +%s`