X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=backup.sh;h=d4ef98b57947a9315ac32490062c489bc9cd5b83;hb=e2156b8d8f4bbda9d46050bfe7363ff84d8ff3ee;hp=43bd75dd8571007cdee69ba47743b2ee425f4f93;hpb=975722990c1ab8fa3763445c90a6c9018b383d58;p=backup.sh diff --git a/backup.sh b/backup.sh index 43bd75d..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 ### @@ -12,8 +11,7 @@ exclude=$confdir/exclude ### #syntax of remotestat: -#hostname:/directory/ or -#hostname:/directory/file +#hostname:/directory/ remotestatf=$confdir/remotestat [ -f $remotestatf ] && remotestat=`cat $remotestatf` ### @@ -33,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 @@ -59,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 \ @@ -73,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 @@ -82,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 } @@ -132,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 @@ -171,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 @@ -185,10 +183,8 @@ do done #create report -/home/backup/report.sh $storagedir /tmp/report.txt +/home/backup/report.sh $storagedir > /tmp/report.txt [ ! -z $remotestat ] && scp /tmp/report.txt $remotestat - -#create index -/home/backup/indekser.sh $storagedir +### date