25 June 2012

FULL COLOR SHELL Script: Backup Data Secara Otomatis Ke Lain Server (LINUX)

Backup data merupakan hal penting yang patut diberi perhatian lebih. Jangan sampai kita kehilangan data yang vital, karena tidak memiliki backup. Terlebih bila kita berprofesi sebagai Webmaster, yang memegang tanggungjawab untuk urusan pemeliharaan data-data website klien. Akan sangat mengecewakan bila suatu saat kita kehilangan kepercayaan dari klien karena data yang hilang dan tidak memiliki backup-nya.
 Dan akan sangat melelahkan bila harus melakukan pekerjaan itu secara manual.


Untungnya, dengan Linux pekerjaan backup data menjadi mudah. Artikel kali ini akan menjelaskan cara mem-backup data secara otomatis menggunakan fitur Secure Copy (scp) yang merupakan fungsi lain dari SSH. Dan tentunya secara default hampir semua distro linux sudah menyertakan program ini dalam paket installasinya. 

Berikut ini merupakan contoh script sederhana yang akan melakukan backup data website secara otomatis, lalu menyimpannya di server lain menggunakan program SCP, dengan username tertentu, dan IP server yang tertentu pula. Sebenarnya script ini bisa dipakai untuk tujuan backup data apa saja, namun fokus pembahasan kali ini untuk mem-backup data website secara keseluruhan.

SKENARIO:

Umpamakan username Anda bernama 'backup' dan home directory Anda di '/home/backup'.

Anggap saja "DocumentRoot" website yang akan di-backup berada di folder /var/www/html. Direktori ini bisa berisi satu website atau beberapa vhost (virtual host), tidak menjadi masalah asalkan kita punya hak akses/read terhadap dokumen yang akan di-backup. Jika kita tidak mempunyai hak akses, maka script ini hanya akan mem-backup file dan folder yang bisa diakses saja.

Selanjutnya kita umpamakan server tempat meletakkan file backup memiliki IP 192.168.10.100 dan port 443 (standar port SSH 22, sebenarnya. Tetapi kebetulan server yang saya miliki menggunakan port 443, maka saya pakai port ini sekalian dalam contoh. Anda bisa menyesuaikan dengan kebutuhan).

Pastinya username yang akan digunakan untuk melakukan backup sudah membuat "key-pair" SSH karena script ini akan dijalankan secara otomatis dan kita tidak akan membuat script melakukan authentikasi dengan metode input password.

Script ini akan berjalan secara otomatis sesuai waktu yang kita pilih, dan hasil ekskusi script ini akan disimpan pada sebuah file log yang nama file-nya merupakan gabungan 'tanggal-bulan-tahun-jam-menit' ketika script diekskusi. 

THE CODE and THE Screenshoot :
Listing code selengkapnya bisa dilihat di Pastebin

Silakan download lalu $ chmod +x backupscript supaya bisa diekskusi. Setelah itu buat entry crontab '$ crontab -e' lalu masukkan '* 21 * * * /home/backup/backupscript > ~/logs/`date +%d_%m_%Y_%H%M`.log'  supaya script ini dijalankan otomatis setiap malam pukul 21:00 atau '@weekly /backup/SHELL/backup.sh > ~/logs/`date +%d_%m_%Y_%H%M`.log' jika ingin melakukan backup setiap minggu sekali. Log file akan berada di '/backup/logs/tanggal-bulan-tahun-jam-menit.log'.

Contoh tampilan ketika script diekskusi, baik success maupun failed.
scp-backup-ok

scp-backup-failed

scp-backup-failed
SOURCE :