Halo, nambah satu artikel lagi di hari libur imlek ini 😀

Buat anda yang saat ini menggunakan The Dude sebagai aplikasi monitoring, tentunya akan sangat sering melakukan backup. Yups, mana tahu suatu hari nanti server anda crash..bisa-bisa harus konfig dari awal jika tidak ada backupnya. Mengawali artikel  Bash script kali ini saya akan menginformasikan script untuk melakukan backup konfigurasi server dude secara otomatis dan berkala. Karena script ini nantinya akan melakukan perintah secara remote, maka kita memerlukan satu server dengan OS linux tempat bersarangnya script ini.

1. Login ssh ke server anda

2. Masuk ke direktori pilihan untuk menempatkan script dude-backup.sh (saya memilih /root/)


root@server-orang [~]# cd /root
root@server-orang [~]#

3.  Buat file baru dengan editor kesukaan anda, saya menggunakan vi


root@server-orang  [~]# vi dude-backup.sh

4. Copy paste script dibawah ini :


#!/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

4. Save file dude-backup.sh
Sampai tahap ini kita sudah selesai membuat script backup konfigurasi dude, tahap selanjutnya anda dapat create cron agar script dude-backup.sh secara otomatis di eksekusi dan menghasilkan file backup baru secara berkala.

5. Masuk ke halaman crontab

root@server-orang [~]# crontab -e

6. Untuk cron saya sendiri menerapkan backup setiap minggu dan akan di eksekusi pada hari Sabtu, 23.30

30 23 * * 6 sh /root/dude-backup.sh
 

Cron dapat anda sesuaikan dengan kebutuhan anda, selesai sudah script untuk backup server dude secara berkala. Script dude-backup.sh dapat di download disini