Rabu, 25 Maret 2015

Server backup di centos

Membangun Sistem Backup Otomatis dengan rsync dan cron di Linux Centos 6

Sebagai pengembangan dari penggunaan rsync dari tutorial sebelumnya, kali ini saya akan coba membangun Sistem Backup secara otomatis yakni dengan cron. Cron bisa kita gunakan untuk penjadwalan tugas berdasarkan waktu yang kita tentukan. Cron merupakan fitur default yang sudah berjalan pada server Linux Centos ketika pertama kali diinstall.

Untuk contoh kasus, saya masih menggunakan topologi sederhana seperti diatas, dimana server SRIWIJAYA akan membackup file dan menyimpannya secara remote di server PAJAJARAN. Disini, rsync akan saya jalankan di server tujuan (PAJAJARAN) untuk melakukan aksi sinkronisasi terjadwal terhadap file yang ada di server SRIWIJAYA. Untuk membangun system backup ini saya akan membaginya kedalam beberapa tahap, yakni:

  1. Login dengan rsa-key (tanpa password) dari server PAJAJARAN ke server SRIWIJAYA
  2. Membuat bash script pada server PAJAJARAN untuk melakukan sinkronisasi file dengan server SRIWIJAYA.
  3. Menambahkan script yang sudah dibuat kedalam cron job, dimana nantinya akan kita jadwalkan untuk menjalankan script setiap pukul 23:45

TAHAP PERTAMA sudah dilakukan dan kita bisa mengikuti tutorial sebelumnya, yakni penggunaan rsa-key untuk login ssh



TAHAP KEDUA, kita akan membuat bash script untuk backup di server remote (PAJAJARAN)


Pertama, kita lakukan test untuk mengambil file backup dari server SRIWIJAYA. Perintah yang digunakan:

[root@PAJAJARAN ~]# rsync -avz root@192.168.1.101:/root/filedata /home/BACKUPCONFIG/sriwijaya


Dengan perintah diatas, kita akan mengambil filedata yang berada di server SRIWIJAYA dan menempatkannya dilokasi /home/BACKUPCONIG/sriwijaya. Untuk folder BACKUPCONFIG kita harus membuatnya terlebih dahulu di server PAJAJARAN dengan mkdir. Sedangkan untuk direktori sriwijaya akan dibuat secara otomatis oleh perintah diatas. 

Berikutnya, kita akan melakukan kompresi terhadap direktori yang sudah di backup, dan memberikan nama file berdasarkan waktu. Misalnya nama file backup yang kita kehendaki yakni : tahun-bulan-tanggal-namafile, contohnya: 20140110-backup.tar.gz. Berikut perintah untuk melakukan kompresi file backup tersebut:

[root@PAJAJARAN ~]# cd /home/BACKUPCONFIG/
[root@PAJAJARAN BACKUPCONFIG]# tar -czf 20140110-backup.tar.gz sriwijaya/
[root@PAJAJARAN BACKUPCONFIG]# ls
20140210-backup.tar.gz  sriwijaya


Dari perintah diatas, kita harus masuk terlebih dahulu kedalam direktori dimana hasil backup disimpan, dalam hal ini kita masuk ke direktori BACKUPCONFIG.
Perintah :

[root@PAJAJARAN BACKUPCONFIG]# tar -czf 20140110-backup.tar.gz sriwijaya/


Bisa diganti dengan :

[root@PAJAJARAN BACKUPCONFIG]# tar -czf $(date +%Y%m%d)-backup.tar.gz sriwijaya/


Setelah mencoba perintah diatas, kita akan membuat script untuk menggabungkannya agar mempermudah dalam proses penjadwalan nantinya. Kita buat script dengan nama myBackup.sh:

[root@PAJAJARAN ~]# nano myBackup.sh


Isi script myBackup.sh :

#!/bin/bash
#script by semoetz
 
#Step 1 : Sinkronisasikan file sumber
rsync -avz root@192.168.1.101:/root/filedata /home/BACKUPCONFIG/sriwijaya

#Step 2 : Masuk ke direktori BACKUPCONFIG
cd /home/BACKUPCONFIG

#Step 3 : lakukan kompresi terhadap file yang sudah di backup
tar -czf $(date +%Y%m%d)-backup.tar.gz sriwijaya/

#Step 4 (optional) : Hapus folder sriwijaya untuk menghemat space
rm -rf sriwijaya


Ubah hak akses agar dapat dieksekusi:

[root@PAJAJARAN ~]# chmod a+x myBackup.sh


Lakukan pengujian script :

[root@PAJAJARAN ~]# ./myBackup.sh 
receiving incremental file list
created directory /home/BACKUPCONFIG/sriwijaya
filedata/
filedata/configacl.txt
filedata/configrouter.txt
filedata/configssh.txt

sent 72 bytes  received 297 bytes  246.00 bytes/sec
total size is 63  speedup is 0.17


Apabila output seperti diatas, maka kita telah berhasil menjalankan script dengan benar, dan kita bisa memeriksanya dengan perintah:

[root@PAJAJARAN ~]# ls /home/BACKUPCONFIG/
20140131-backup.tar.gz



TAHAP KETIGA, kita akan membuat system backup dengan cron:


Dari contoh kasus diatas, kita akan melakukan backup file setiap hari pada pukul 23:45. Kita akan menggunakan cron dengan perintah:

[root@PAJAJARAN ~]# crontab –e


Kita masukkan script myBackup.sh kedalam cron, dengan parameter sebagai berikut:

#Backup setiap hari pukul 23:45
45 23 * * * /root/myBackup.sh


Restart service crond, dengan perintah:

[root@PAJAJARAN ~]# service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]


Sampai tahap ini, proses membangun system backup secara otomatis sudah dibuat. Jangan lupa untuk melakukan pemeriksaan terhadap file yang sudah kita backup, apakah berhasil atau tidak. Tutorial ini adalah versi otodidak dari penulis, mungkin diluar sana masih banyak berbagai cara yang lebih terstruktur dan bisa dipelajari sesuai kebutuhan kita.

Tidak ada komentar:

Posting Komentar