Beranda > Linux, System Administrator > Backup Server ke Server Lain Menggunakan Rsync + Samba + SQLDump + Crontab

Backup Server ke Server Lain Menggunakan Rsync + Samba + SQLDump + Crontab

Pada tutorial kali ini saya akan menjelaskan step-by-step yang saya lakukan terhadap keseluruhan server yang saya maintenance.

Untuk disaster recovery perlu dibutuhkan server yang menampung backup database dan backup source code website dengan format backup harian.

Berikut langkah yang saya lakukan pada server backup yang akan menampung keseluruhan file backup server lain.

Spesifikasi Server Backup : (Proc : Intel i5, RAM 4GB, HDD 4TB, IP Address 172.16.0.22)

1. Persiapkan SAMBA services pada server backup, berikut langkahnya :

verrysoon@backup-server:~#aptitude -y install  samba

verrysoon@backup-server:~# mkdir /home/share

verrysoon@backup-server:~# chmod 777 /home/share

verrysoon@backup-server:~# vi /etc/samba/smb.conf

# baris 34: tambahkan
unix charset = UTF-8
# baris 39: ganti jika diperlukan untuk akses via windows
workgroup = WORKGROUP
# baris 64: uncomment dan sesuaikan dengan network anda
interfaces = 127.0.0.0/8 eth0
# baris 71: uncomment
bind interfaces only = yes
# baris 103: ganti untuk tidak ada authentikasi
security = share
# tambakan di baris terakhir
[BACKUP_SERVER] # nama untuk folder shared
path = /home/backup_server/
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
share modes = yes
hosts allow = 192.168.202. 172.16. # Akses security agar hanya subnet network server saja yang bisa mengakses secara anonymous.

verrysoon@backup-server:~# service smbd restart

Pada tahap ini, seharusnya server samba sudah bisa diakses dari OS windows dengan “Run” >> \\172.16.0.22

2. Mounting samba server backup pada server yang ingin di backup (disini webserver dengan IP 172.16.0.26)
CARA 1 :

verrysoon@webserver1:~# apt-get install smbfs

verrysoon@webserver1:~# mkdir /mounted_backup_server/

verrysoon@webserver1:~# chown netadmin:netadmin /mounted_backup_server/

verrysoon@webserver1:~# smbmount //172.16.0.22/backup_server /mounted_backup_server/

Dengan cara ini folder samba bisa di mount ke folder lokal server /mounted_backup_server/
namun setelah di restart folder yang telah di mount tadi akan hilang dan akan terkendala jika kita membuat crontab secara automatic.

CARA 2 :
verrysoon@webserver1:~# apt-get install smbfs

verrysoon@webserver1:~# mkdir /mounted_backup_server/

verrysoon@webserver1:~# chown netadmin:netadmin /mounted_backup_server/
Buat file untuk menyimpan account autentikasi samba (saya menyimpannya di /home/netadmin/.smbcredentials)

verrysoon@webserver1:~# nano /home/netadmin/.smbcredentials
username=netadmin
password=1234567
domain=WORKGROUP
#SAVE

verrysoon@webserver1:~# nano /etc/fstab
//172.16.0.22/backup_server/ /mounted_backup_server cifs credentials=/home/netadmin/.smbcredentials,rw,uid=netadmin,user 0 0

verrysoon@webserver1:~# sudo mount
Test restart dan SMB Path Backup Server akan termount secara automatic pada Webserver

3. Backup MySQL Database :
Buat file .sh
verrysoon@webserver1:~# nano /home/netadmin/backup_sql.sh

#!/bin/sh
tgl=`/bin/date +%Y%m%d-%H`
/usr/bin/mysqldump --user=root --password=1234567 --lock-all-tables \
--all-databases > /mounted_backup_server/data_172.16.0.26/database/backup-${tgl}.sql

for file in “$( /usr/bin/find /mounted_backup_server/data_172.16.0.26/database -type f -mtime +2 )”
do
/bin/rm -f $file
done

exit 0

4. Backup Source Website:
verrysoon@LOKAL-SERVER:~# nano /home/netadmin/backup_website.sh

#!/bin/sh
####################################
#
# Backup to NFS mount script.
#
####################################

# What to backup.
backup_files="/home"

# Where to backup to.
dest="/mounted_backup_server/data_172.16.0.11/website"

# Create archive filename.
day=$(date +%Y%m%d)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Print start status message.
echo "Backing up $backup_files to $dest/$archive_file"
date
echo

# Backup the files using tar.
tar czf $dest/$archive_file $backup_files

# Print end status message.
echo
echo "Backup finished"
date

# Long listing of files in $dest to check file sizes.
ls -lh $dest

5. Setting Crontab untuk penjadwalan eksekusi script

verrysoon@webserver1:~# crontab -e
#BACKUP SQL
10 0 * * * /home/netadmin/running_script/backup_sql.sh

#RSYNC TO BACKUP_SERVER
10 0 * * * /home/netadmin/running_script/backup_website.sh

Thank.
Best Regards,
Verrysoon

  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s