Skip to content

Instantly share code, notes, and snippets.

@vad
Created May 3, 2010 09:03
Show Gist options
  • Save vad/387895 to your computer and use it in GitHub Desktop.
Save vad/387895 to your computer and use it in GitHub Desktop.
#! /bin/sh
# find the path of this script
ABSPATH="$(cd "${0%/*}" 2>/dev/null; echo "$PWD"/"${0##*/}")"
SCRIPT_PATH=`dirname "$ABSPATH"
export DEST_DIR=/hardmnt/bowie0/sra/sonet/backup/
export AUTH_FILE=.......
source $SCRIPT_PATH/backup-lib.sh
BACKUP_CMD="pg_dump -U sonetdbmgr desktop"
backup sql pg_desktop_db "$BACKUP_CMD"
BACKUP_CMD="pg_dump -U sonetdbmgr desktop_dev"
backup sql pg_desktop_dev_db "$BACKUP_CMD"
BACKUP_CMD="pg_dump -U sonetdbmgr research_wiki"
backup sql research_wiki "$BACKUP_CMD"
BACKUP_CMD="pg_dump -U sonetdbmgr research_pds"
backup sql research_pds "$BACKUP_CMD"
BACKUP_CMD="mysqldump -u root ejabberd"
backup sql ejabberd_db "$BACKUP_CMD"
BACKUP_CMD="mysqldump -u root wikidb"
backup sql wiki "$BACKUP_CMD"
backup_files desktop_www www/desktop/html
backup_files www_conf "www/bowie/conf www/desktop/conf"
DAY=$(date +%d)
YEAR_MONTH=$(date +\%Y\%m)
## functions
put () {
smbclient -A $AUTH_FILE '\\fbk\ricerca\sonet' -c "cd backup\\$1 ; put $DEST_DIR/$1/$2 $2";
}
backup_x64() {
EXT=$1
THIS_DIR=$2
BACKUP_CMD="$3"
REF_FN=${YEAR_MONTH}.$EXT.bz2
REF=$DEST_DIR/$THIS_DIR/$REF_FN
if [ ! -f $REF ]
then
$BACKUP_CMD| bzip2 -9 > $REF
put $THIS_DIR $REF_FN
else
FN=${YEAR_MONTH}${DAY}.$EXT
FP=$DEST_DIR/$THIS_DIR/$FN
bunzip2 -kc $REF > /tmp/xdelta.1
$BACKUP_CMD |xdelta3 -e -I 0 -S djw -s /tmp/xdelta.1 > $FP.vcdiff
rm -f $FP /tmp/xdelta.1
put $THIS_DIR $FN.vcdiff
fi
}
backup() {
EXT=$1
THIS_DIR=$2
BACKUP_CMD="$3"
REF_FN=${YEAR_MONTH}.$EXT.gz
REF=$DEST_DIR/$THIS_DIR/$REF_FN
if [ ! -f $REF ]
then
$BACKUP_CMD| gzip -9 > $REF
put $THIS_DIR $REF_FN
else
FN=${YEAR_MONTH}${DAY}.$EXT.gz
FP=$DEST_DIR/$THIS_DIR/$FN
$BACKUP_CMD| gzip -9 > $FP
xdelta delta $REF $FP $FP.xdelta
rm -f $FP
put $THIS_DIR $FN.xdelta
fi
}
backup_files() {
THIS_DIR=$1
FILES="$2"
REF_FN=${YEAR_MONTH}.gz
REF=/$DEST_DIR/$THIS_DIR/$REF_FN
if [ ! -f $REF ]
then
tar zcvf $REF --exclude '*/.svn*' -C / $FILES
put $THIS_DIR $REF_FN
else
FN=${YEAR_MONTH}${DAY}.gz
FP=$DEST_DIR/$THIS_DIR/$FN
tar zcvf $FP --exclude '*/.svn*' -C / $FILES
xdelta delta $REF $FP $FP.xdelta
rm -f $FP
put $THIS_DIR $FN.xdelta
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment