How to create backup data to local and send to backup server through FTP


Kali ni aku nak share cara mudah utk buat backup data ke local dan seterusnya hantar pula ke backup server menggunakan FTP.

OS : CentOS / RHEL
Aplikasi diperlukan : ncftp 3.2.2-1, webmin 1.5.10, repo EPEL enabled

1) Assume webmin dah ada install kat dalam server tu
2) Untuk install ncftp. Pilih yes untuk install.
> yum install ncftp*
1050 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ncftp.i386 2:3.2.2-1.el5 set to be updated
---> Package ncftp-debuginfo.i386 2:3.2.2-1.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package              Arch      Version               Repository           Size
================================================================================
Installing:
 ncftp                i386      2:3.2.2-1.el5         epel                567 k
 ncftp-debuginfo      i386      2:3.2.2-1.el5         epel-debuginfo      1.2 M

Transaction Summary
================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 1.7 M
Is this ok [y/N]: y

3) Connect ke server guna winscp. Create folder berikut '/data/FILESYS'
4) Di winscp, create satu file nama 'ftpfilesys.sh' di '/data' dan taip coding berikut di dalamnya, seterusnya SAVE :
# ---------------------------------------------------------------------

### System Setup ###
DIRS="/data/FILESYS"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")

### FTP server Setup ###
FTPD="/BKP/SVRBAIK/FILESYS//full"
FTPU="baik"
FTPP="53k51"
FTPS="192.168.0.100"
NCFTP="/usr/bin/ncftpput"
### NCFTP="$(which ncftpput)"

### Other stuff ###
EMAILID="baik@good.com"

### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :

### See if we want to make a full backup ###
  FTPD="/BKP/SVRBAIK/FILESYS//full"
  i=$(date +"%Hh%Mm%Ss")
  FILE="spl-FILESYS-FULL-$NOW-$i.tar.gz"
  tar -zcvf $BACKUP/$FILE $DIRS

### Dump backup using FTP ###
#Start FTP backup using ncftp
ncftp -u"$FTPU" -p"$FTPP" $FTPS<
##$NCFTP -u"$FTPU" -p"$FTPP" $FTPS<
mkdir $FTPD
mkdir $FTPD/$NOW
cd $FTPD/$NOW
lcd $BACKUP
mput *
quit
EOF

### Find out if ftp backup failed or not ###
if [ "$?" == "0" ]; then
 rm -f $BACKUP/*
else
 T=/tmp/backup.fail
 echo "Date: $(date)">$T
 echo "Hostname: $(hostname)" >>$T
 echo "Backup failed" >>$T
 mail  -s "BACKUP FAILED : FILESYS n DB SVR PORTAL JABATAN" "$EMAILID" <$T
 rm -f $T
fi
# ---------------------------------------------------------------------


5) Buka software putty dan login ke server tersebut. Taip berikut utk enable file tersebut run in linux :
> chmod u+x /data/FILESYS/ftpfilesys.sh

6) Seterusnya pada winscp juga, create file 'allfilesys.tar' di dalam '/data/FILESYS'

7) Seterusnya kita nak buat local backup kepada file  'allfilesys.tar' di dalam '/data/FILESYS'

8) Login webmin > system > filesystem backup. Masukkan ruangan directory to backup yang diinginkan. Contoh ini adalah utk backup folder sistem dalam folder '/var/www/html/baik'. Seterusnya klik Add a new backup of directory.

9) Jika nak tambah lagi folder utk dibackup boleh tetapkan dalam ruang Directories to backup tu seperti contoh berikut. Bahagian bawah backup schedule tu leh tetapkan masa utk dibuat backup data local tu. Lelain tu pepandailah. Pada kotak Backup to masukkan destinasi file allfilesys.tar yang kita dah create tadi :


10) Dah siap konfigurasi dan klik SAVE.
11) Cuba klik SAVE AND BACKUP NOW utk jalankan backup tu.
12) So local backup di server telah siap dibuat konfigurasi. Sekarang kita nak backup data ke server lain pula guna FTP.
13) Login webmin > system > Scheduled Cron Jobs. Dan pilih Create a new scheduled cron job. Paparan berikut akan keluar bersama contoh input :


14) Kotak command yang berisi info tersebut : /data/ftpfilesys.sh >/var/log/logftpfilesys 2>&1
/data/ftpfilesys.sh - file utk run command tar folder dan seterusnya ftp ke server lain
/var/log/logftpfilesys - create log file bagi aktiviti tar dan ftp file tersebut untuk memudahkan semakan kemudian jika terdapat sebarang error semasa tar atau penghantaran data melalui FTP.

15) When to execute tu bagi tujuan penentuan admin bila masa sesuai script tersebut ditrigger.

16) Klik SAVE. Seterusnya buka semula fail tersebut dan klik RUN NOW.
'no output generated' akan keluar apabila selesai aktiviti tar dan ftp.

17) Semak folder di server Backup FTP tersebut untuk pastikan data selamat tiba.

18) Selesai dah..

> Kaedah ni boleh digunakan bukan utk filesys sahaja, tetapi juga jika dump mysql data ke satu folder, maka boleh guna script tersebut untuk tar dan ftp ke server lain.
> Terima kasih pada tok guru site www.cyberciti.biz yang banyak membantu dari segi script2 tersebut.
> Bagi kerja ni, anda perlu pastikan dokumentasi waktu dibuat backup local tu dicatatkan dan lokasi backup local disimpan, seterusnya bilakah backup data dihantar ke ftp server, seterusnya lokasi simpanan backup data di ftp server.

Semoga anda juga berjaya.

~ Be a Creator Not a User ~
http://muzzotechspot.blogspot.com
http://muzzoshah.blogspot.com

Ulasan