X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=backup.sh;h=d4ef98b57947a9315ac32490062c489bc9cd5b83;hb=e2156b8d8f4bbda9d46050bfe7363ff84d8ff3ee;hp=bfc243af0a9b2c2a4560d061fa9f586b5b70910c;hpb=051e48d51c4f4fc416dd3f4a3055959ef8dadb5a;p=backup.sh diff --git a/backup.sh b/backup.sh index bfc243a..d4ef98b 100755 --- a/backup.sh +++ b/backup.sh @@ -2,7 +2,6 @@ #dirs confdir=/home/backup/conf/ #configuration files -webdir=/home/backup/public_html #web-pages storagedir=/backup #mountpoint of huge disc ### @@ -32,11 +31,9 @@ umask 027 # The computers we want to back up unixcomputers=`cat $confdir/computers.unix` -#ntcomputers=`cat $confdir/computers.nt` ### #disse bør kunne varieres fra fs til fs? -#disse bør flyttes ut i egen fil som kan editeres fra web kanskje? maksantallfulle=2 #hvor mange fulle vi tar vare på dagermellomfulle=30 #antall dager før det er på tide med ny full logw=40 @@ -58,12 +55,12 @@ backup() if [ "$backuplevel" = "daglig" ] || [ "$backuplevel" = "incremental" ] then forrige=`cat ../.date` - forrigecmd=--newer=\"$forrige\" + forrigecmd="--newer=\"$forrige\"" else forrigecmd="" fi - #Prøver å ta backup med tar + #We try to run tar on the remote computer if `ssh $computer "cd $filesystem ;\ tar cfl - . $forrigecmd \ --exclude-from=/tmp/.backup/exclude \ @@ -72,7 +69,8 @@ backup() then #perhaps it did work mv $DATE.tmp $DATE.tgz - #make a filelist and update the datefile + #make a filelist. + #update the datefile if the filelist is ok. tar tvfz $DATE.tgz > $DATE.idx 2>&1 && echo $DATEs > ../.date && touch -t $DATE ../.date @@ -81,13 +79,13 @@ backup() grep -v ^d $DATE.idx | sort -n -r +2 > $DATE.sdx #fix perm - chmod 600 *tgz - chmod 644 *sdx *idx + chmod 600 *tgz #only for us + chmod 644 *sdx *idx 2>/dev/null #everyone can read else #it did not work - rm $DATE.tmp - echo "$backuplevel backup of $computer:$filesystem failed" + rm $DATE.tmp 2>/dev/null + echo "$backuplevel backup of $computer:$filesystem failed and deleted" fi } @@ -131,8 +129,8 @@ do mkdir -m 755 -p $storagedir/$computer/$sfilesystem/{full,daglig} 2>/dev/null # - echo $filesystem > $storagedir/$computer/$sfilesystem.name - chmod 644 $storagedir/$computer/$sfilesystem.name + echo $filesystem > ${storagedir}/${computer}/.${sfilesystem}.name + chmod 644 ${storagedir}/${computer}/.${sfilesystem}.name #set default backuplevel backuplevel=daglig @@ -170,6 +168,7 @@ do oldf=`ls -t1 $storagedir/$computer/$sfilesystem/full/*tgz | tail -1` find \ $storagedir/$computer/$sfilesystem/daglig \ + -type f \ \! -newer $oldf \ -exec rm {} \; #denne funker bare med gnu find