#!/bin/sh
# Bash Script - remote backup MikroTik Dude database
# by : Jurmansyah [jiem]
# http://www.jurmansyah.net
# jiem@jurmansyah.net
# 23 Januari 2011 - Lembur di hari libur nasional Imlek
# Listening = Maher Zein feat Fadly - Insya allah
# requires: sh, awk, wget

##############################################################################################

# Definisikan server dude dan path backup. USE ABSOLUTLEY PATH FOR DIRECTORIES
server=		# server name or IP address
user=					# admin user name
password=				# admin password
backupdir=/backup/dude-backup/data		# directory backup file
workdir=/backup/dude-backup/work		# directory temporary files (setelah file backup dibuat,folder akan didelete)

# server port and log file
serverport=80
logfile=$backupdir/log.txt

##############################################################################################

# Script perintah backup -  jangan di edit
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

# membuat direktori work dan backup file
if [ ! -e "$workdir" ]
    then
    mkdir -p "$workdir"
fi
if [ ! -e "$backupdir" ]
    then
    mkdir -p "$backupdir"
fi
if [ ! -e "$backupdir/old" ]
    then
    mkdir -p "$backupdir/old"
fi

today=`date +%Y.%m.%d`  #setting waktu hari ini
serverfilename=backupbackup-$today.xml  #setting file name
backupname=dude-backup-$today.xml
echo "-------------------------------------------------------
Backup dimulai pada $today
" >> $logfile


# move backup lama ke dir old
mv $backupdir/*backup* $backupdir/old 2> /dev/null

# Download file backup dari server dude
echo "Authorizing..."
wget --cookies=on --keep-session-cookies --save-cookies=$workdir/cookie.txt --progress=dot:mega "http://$server:$serverport/dude/main.html?process=login&user=$user&password=$password" -O $workdir/page1.html 2>> $logfile
echo "Mohon menunggu sejenak, download file backup XML akan membutuhkan waktu..."
wget --cookies=on --load-cookies=$workdir/cookie.txt --progress=dot:mega "http://$server:$serverport/dude/$serverfilename?page=savefile&download=yes" -O $backupdir/$backupname 2>> $logfile


# Bersih-bersih
echo "Bersih-bersih direktori..."
rm -f $workdir/*
rm -rf $workdir

# Memeriksa backup terbaru dan delete backup yang lama

if [ `du $backupdir/$backupname | awk -F" " '{print($1)}'` -gt 0 ]
    then
    rm -f $backupdir/old/*
    rm -rf $backupdir/old
    echo "Selesai semua."
    else
    rm -f $backupdir/$backupname
    echo "Backup gagal! (lihat log.txt di $backupdir )"
    echo "Backup gagal!" >> $logfile
fi

echo "
Backup server dude telah selesai.
-------------------------------------------------------
" >> $logfile
exit

