User Tools

Site Tools


backup-server:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
backup-server:start [2017/03/04 15:10]
asok created
backup-server:start [2017/03/04 23:48] (current)
asok
Line 1: Line 1:
 =====Backup using Backup Server===== =====Backup using Backup Server=====
  
-Copy the file budata.sh from WEB-INF into the /root folder in the backup server.+Copy the file **budata.sh** from WEB-INF into the **/root** folder in the backup server. Follow the instructions in the header.
  
 +<​file>​
 +#!/bin/sh
 +#​========================
 +#Place this file in the /root folder of the backup server
 +
 +#
 +#on backup server
 +#(1) Generate key on backup server
 +#ssh-keygen -t rsa
 +#
 +#(2) Copy the key into the autorized_keys of the source server
 +#
 +#ssh root@source.dreamapps.com ​ mkdir -p .ssh
 +#cat .ssh/​id_rsa.pub | ssh root@source.dreamapps.com 'cat >> .ssh/​authorized_keys'​
 +#
 +#(3) On backup server
 +#
 +# /​root/​budata.sh source
 +#
 +#(4) Automate it
 +#
 +# crontab -e
 +#
 +# daily : 1 1 * * * /​path/​to/​script/​budata.sh
 +# weekly: 1 1 * * 0 /​path/​to/​script/​budata.sh ​
 +#
 +# 30 03 * * * /​root/​budata.sh sg01
 +#
 +# will backup the data in sg01.dreamapps.com daily at 3:30 am
 +#
 +#​========================
 +# here=`pwd`
 +pathname=$(readlink -f "​$0"​)
 +arg=$1''​
 +####  YOU MAY NEED TO CHANGE ONLY THE NEXT 3 LINES  ####
 +
 +myhost=${arg}'​.dreamapps.com'​
 +budir='​data'​
 +relpathtowiki='/​var/​lib/​pgsql/​data/'​
 +
 +####  YOU MAY NEED TO CHANGE ONLY THE LAST 3 LINES  ####
 +
 +mydate="​`date '​+%Y%m%d.%H%M'​`"​
 + 
 +# Define wiki location
 +#​myhost='​${svr}' ​                    #name of the server hosting your your wiki
 +myuser='​root' ​                         #name of the user that has an ssh access to "​myhost"​
 +#​relpathtowiki='/​var/​lib/​pgsql/​data/' ​ #relative path to your wiki from "​myhost"​ base
 +backupsource="​${myuser}@${myhost}:​${relpathtowiki}"​
 +#​backupsource="/​abs/​path/​to/​wiki/"​ #Use this line instead of the above if you run the backup script directly on your www server.
 + 
 +# Define location of backup
 +#​backupdir="/​home/​ds1184/​bu/​${myhost}/​data"​
 +backupdir="/​home/​ds1184/​bu/​${myhost}/​${budir}"​
 +logfile="​${backupdir}/​backup.log"​
 +excludelist="​${pathname}-exclude.txt"​
 +bkname="​backup"​
 + 
 +nbbackup="​7"​ # keep this amount of old backup
 + 
 +#-- creates $1, if not existant
 +checkDir() {
 +    if [ ! -d "​${backupdir}/​$1"​ ] ; then
 +        mkdir -p "​${backupdir}/​$1"​
 +    fi
 +}
 + 
 +# 1 -> path
 +# 2 -> name
 +# 3 -> number of backups
 +rotateDir() {
 +    for i in `seq $(($3 - 1)) -1 0`
 +      do
 +      if [ -d "​$1/​$2-$i"​ ] ; then
 +          /bin/rm -f "​$1/​$2-$((i + 1))"
 +          mv "​$1/​$2-$i"​ "​$1/​$2-$((i + 1))"
 +      fi
 +    done
 +}
 + 
 +#-- make sure everything exists
 +checkDir "​archive"​
 +checkDir "​daily"​
 + 
 +#-- first step: rotate daily.
 +rotateDir "​${backupdir}/​daily"​ "​$bkname"​ "​$nbbackup"​
 + 
 +mv ${logfile} ${backupdir}/​daily/​${bkname}-1/​
 + 
 +cat >> ${logfile} <<​_EOF
 +===========================================
 +  Backup done on: $mydate
 +===========================================
 +_EOF
 + 
 +#-- Do the backup and save difference in backup-1
 +mkdir -p ${backupdir}/​daily/​${bkname}-1/​
 +mkdir -p ${backupdir}/​daily/​${bkname}-0/​
 +cd ${backupdir}/​daily/​${bkname}-0
 +rsync -av --whole-file --delete --force \
 +    -b --backup-dir ${backupdir}/​daily/​${bkname}-1/​${thisdir} \
 +    --exclude-from=${excludelist} \
 +    $backupsource . \
 +    1>> ${logfile} 2>&1
 + 
 +#-- create an archive backup every month
 +lastarchivetime="​0"​
 +if [ -r ${backupdir}/​lastarchivetime ] ; then
 +  lastarchivetime=`cat ${backupdir}/​lastarchivetime`
 +fi
 +now=`date +%j`
 +let diffday=$now-$lastarchivetime
 +if [ $diffday ​ -ge 30 -o $diffday -lt 0 ] ; then
 +    echo $now > ${backupdir}/​lastarchivetime
 +    cd ${backupdir}/​daily
 +    tar -cjf ${backupdir}/​archive/​${bkname}-${mydate}.tar.bz2 ./​${bkname}-0
 +fi
 +
 +</​file>​
  
/srv/www/htdocs/wiki/data/attic/backup-server/start.1488640232.txt.gz · Last modified: 2017/03/04 15:10 by asok