From cf817078ff01cf9a58ffa7447bfb0c7a903a9aff Mon Sep 17 00:00:00 2001 From: root Date: Tue, 24 Jul 2007 22:43:22 +0000 Subject: [PATCH] =?utf8?q?Aner=20ikke=20hvem=20som=20har=20glemt=20=C3=A5?= =?utf8?q?=20commite,=20jeg=20committer.=20-berge?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- backup.sh | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/backup.sh b/backup.sh index a7256a9..7d4ee30 100755 --- a/backup.sh +++ b/backup.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh #dirs confdir=/home/backup/conf/ #configuration files @@ -30,7 +30,14 @@ echo umask 027 # The computers we want to back up -unixcomputers=`cat $confdir/computers.unix` +unixcomputers=`cat $confdir/computers.unix \ + | grep -v "^#" \ + | grep -v "^$" ` + + +if [ $1 ] ; then + unixcomputers=$1 +fi; ### #disse bør kunne varieres fra fs til fs? @@ -75,7 +82,8 @@ backup() # C is instead of 'cd $filesystem' # - is 'this directory' # l is 'stay in local filesystem - if `ssh $computer "$tar cfCl - $filesystem . $lastcmd \ + echo "cmdline: $tar cfCl - $filesystem . $lastcmd --exclude-from=$exf | gzip" + if `ssh -c blowfish $computer "$tar cfCl - $filesystem . $lastcmd \ --exclude-from=$exf \ | gzip" \ | dd of=$DATE.tmp 2>/dev/null` @@ -99,6 +107,7 @@ backup() #it did not work rm $DATE.tmp 2>/dev/null echo "$backuplevel backup of $computer:$filesystem failed and deleted" + # TODO send mail! fi } @@ -106,14 +115,15 @@ backup() #Løper gjennom listen av unixmaskiner som vi skal ta backup av for computer in $unixcomputers do - +( #tømmer variabelen for sikkerhets skyld filesystems="" #Sjekker nest siste felt i fstab. Om det er 0 tar vi ikke backup filesystems=`ssh -n $computer "cat /etc/fstab" \ | grep -v nfs \ - | grep -v ^# \ + | grep -v "^#" \ + | grep -v "^$" \ | awk '{ if ( $(NF-1) != "0" ) print $2}' ` #clean up our dir at this client @@ -161,17 +171,24 @@ do backuplevel=full fi - #gå ned i rett katalog - cd $storagedir/$computer/$sfilesystem/$backuplevel + #gå ned i rett katalog, eller dø + # TODO bør sende mail om dette skjer! + cd $storagedir/$computer/$sfilesystem/$backuplevel || exit 1 #perform the actual backup backup + # Sjekk om det skal være et annet antall fulle backuper av en boks + if [ -f $confdir/maksfulle.$computer ] ; then + mf=$((`cat $confdir/maksfulle.$computer`+1)) + else + mf=$(($maksantallfulle+1)) + fi + #delete complete backups - mf=$(($maksantallfulle+1)) for full in `ls -1t $storagedir/$computer/$sfilesystem/full/*tgz | tail +$mf` do - prefix=`echo $full|cut -d . -f 1` + prefix=`echo $full | sed "s/\.[^.]*$//"` echo "$computer:$filesystem sletter full $prefix (for mange)" rm $prefix* done @@ -183,15 +200,17 @@ do -type f \ \! -newer $oldf \ -exec rm {} \; - #denne funker bare med gnu find - #-printf "$computer:$filesystem sletter daglig %f (for gammel)\n" \ - +# #denne funker bare med gnu find +# #-printf "$computer:$filesystem sletter daglig %f (for gammel)\n" done #try to run postexec if it exist ssh $computer "[ -f ~/.backup/postexec ] && /bin/bash -x ~/.backup/postexec" -done +) +done & + +wait #create report /home/backup/report.sh $storagedir > /tmp/report.txt -- 2.39.2