Jika sobat memiliki budget yang cukup, mungkin sobat akan menyewa VPS atau server tambahan untuk menyimpan semua backup dari VPS yang sobat kelola. Akan tetapi, buat penyewa VPS dengan budget yang pas-pasan – termasuk saya pribadi, rasanya agak sedikit berat jika harus menyewa VPS tambahan yang akan digunakan untuk menyimpan backup. Oleh karena itu, dalam tulisan kali ini saya mencoba mengangkat topik solusi backup gratis file dan database yang ada di VPS sobat secara otomatis ke media penyimpanan online Dropbox.
Kenapa Dropbox?
Dropbox menawarkan aksesibilitas ke cloud storage mereka lewat berbagai macam platform. Sobat dapat mengakses file-file anda di Dropbox dengan menggunakan browser, aplikasi klien Dropbox di komputer desktop, laptop, iPhone, Android, dan media lainnya (termasuk gadget kesayangan kita).
Aksesibilitas yang mudah ini memungkinkan kita untuk mengunduh berkas backup dari berbagai macam perangkat dan media. :)
Dropbox menawarkan space penyimpanan online (cloud storage) yang bersifat berbayar dan gratis. Secara default, untuk akun gratisan, Dropbox memberikan space cloud storage sebesar 2 Gb. Terlalu sedikit? Hmm.. nggak juga! 2 Gb cukup untuk menampung berkas backup website atau blog dengan ukuran kecil dan menengah. Faktanya, untuk menampung backup database dan file dari blog fazar.net hanya memerlukan kurang dari 200 Mb ruang penyimpanan di Dropbox.
Keterbatasan :
Backup menggunakan Dropbox ini hanya bersifat parsial, dalam artian backup hanya dapat dilakukan untuk direktori tertentu saja dari VPS sobat. Misalnya direktori web directory (/var/www), direktori konfigurasi (/etc), atau direktori home (/home/fazar).
Pengen backup keseluruhan sistem VPS? Silakan sewa provider VPS yang punya fitur vm backup (biasanya yang beginian rada berat di ongkos $$$), hehehe.
Persiapan
Pastikan bash, curl dan zip terinstal di VPS sobat, kemudian download Dropbox-Uploader ke direktori root (/root) atau ke direktori lainnya jika sobat mau (saya sih rekomendasinya di /root)
# cd ~ # curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh # chmod +x dropbox_uploader.sh
Silakan login ke akun DropBox milik sobat di browser kesayangan masing-masing, kemudian lakukan hal berikut ini secara berurutan :
- Klik link berikut ini untuk membuka halaman developer Dropbox.
- Klik “Create App”, lalu pilih “Dropbox API”
- Pilih “App folder – Access to a single folder created specifically for your app.”
- Tandai “I agree to Dropbox API Terms and Conditions.”
- Masukkan “App name” sesuai keinginan sobat (dalam contoh ini saya pake nama “Polaris Backup”) dan terakhir klik “Create app”
Setelah proses tersebut selesai, maka akan tampil informasi app yang barusan sobat bikin, termasuk informasi App key dan App secret. Catat kedua key ini di teks editor (seperti notepad atau sejenisnya).
Contoh App key dan App secret :
Selanjutnya, Dropbox Uploader dengan menggunakan perintah ./dropbox_uploader.sh di konsol ssh, maka akan tampil dialog interaktif untuk mengisi parameter app dan meng-generate file konfigurasi dropbox-uploader.
- App secret : masukkan App key yang sudah dicatat sebelumnya, tekan “enter”
- App key : masukkan App secret tadi, tekan “enter”
- Permission type, App folder or Full Dropbox [a/f]: a
- Looks ok? [y/n] y
Jika parameter yang sobat masukkan benar, selanjutnya akan tampil permintaan untuk membuka link otentifikasi app, seperti berikut ini :
Please open the following URL in your browser, and allow Dropbox Uploader to access your DropBox folder: --> https://www.dropbox.com/1/oauth/authorize?oauth_token=xxxxxxxxxxxxxxxxx
Silakan copas link tersebut ke browser, maka akan tampil konfimasi akses direktori Dropbox untuk app yang dibuat, klik saja “Bolehkan” atau “Allow” (jangan lupa tekan tombol enter pada konsol ssh setelah anda meng-allow).
Oke… saat ini Dropbox sudah bisa terhubung ke VPS sobat dengan menggunakan dropbox-uploader.
Membuat script backup
Langkah berikutnya adalah membuat script yang dapat melakukan backup otomatis VPS ke Dropbox untuk direktori tertentu dan database yang ada didalam VPS.
Monggo copas script berikut ini, kemudian simpan dengan nama “backup.sh”
#!/bin/bash # Konfigurasi - SESUAIKAN dengan kondisi anda! # MYHOST - bisa di isi hostname atau nama unik lainnya #(tanpa spasi) MYHOST="myhostname" # BKP_DIRS - direktori-direktori yang akan dibackup, pisah dengan spasi BKP_DIRS="/home/username/ /var/www /etc" # MYSQL_SERVER - host database MYSQL_SERVER="localhost" # USER dan PASSWORD database MYSQL_USER="mydbuser" MYSQL_PASS="mydbuserpasswd" # DATABASE yang akan di backup DBNAME="db_mydb" # Letak script dropbox-uploader # Nggak perlu dirubah kalo mengikuti tutorial ini DROPBOX_UPLOADER="/root/dropbox_uploader.sh" CONFIG="/root/.dropbox_uploader" # STOP DISINI! TMP_DIR="/tmp" DATE=$(date +"%d-%m-%Y") BKP_FILE="$TMP_DIR/$MYHOST-$DATE.zip" BKP_DB_FILE="$TMP_DIR/$MYHOST-DB-$DATE.zip" OLD_BACKUPS="$($DROPBOX_UPLOADER -f $CONFIG list | grep $MYHOST | awk '{print $3}')" echo " > Backup started at $(date +"%m/%d/%Y %T")" echo " > Removing old backup files on remote server (if exists)" for i in $OLD_BACKUPS; do $DROPBOX_UPLOADER -f "$CONFIG" delete /$i; done echo " > Generating new backup file: $BKP_FILE" zip -9 -q -r "$BKP_FILE" $BKP_DIRS echo " > Generating new database backup file: $BKP_DB_FILE" mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS $DBNAME > "$TMP_DIR/$MYHOST-DB-$DATE.sql" zip -9 -q -r "$BKP_DB_FILE" "$TMP_DIR/$MYHOST-DB-$DATE.sql" echo " > Uploading backup files, please wait..." $DROPBOX_UPLOADER -f "$CONFIG" upload "$BKP_FILE" / $DROPBOX_UPLOADER -f "$CONFIG" upload "$BKP_DB_FILE" / echo " > Removing temporary backup files" rm -f "$BKP_FILE" rm -f "$TMP_DIR/$MYHOST-DB-$DATE.sql" rm -f "$BKP_DB_FILE" echo " > Backup to remote server was successfully completed at $(date +"%m/%d/%Y %T")"
Jangan lupa sesuaikan konfigurasinya dengan keinginan sobat!!
Untuk menjalankan backup, silakan ketikkan perintah “bash backup.sh”. Jika script berjalan baik, anda akan dapat melihat output seperti ini :
Backup berhasil dilakukan! Coba cek folder “Aplikasi” atau “Apps” di akun Dropbox sobat…
Sobat bisa membuat backup otomatis VPS ke Dropbox ini berjalan setiap periode tertentu (misalnya per 3 hari). Caranya adalah buat file baru dengan nama backup.log (touch /var/log/backup.log) dan menambahkan jadwal backup ke Dropbox di cron.
0 5 */3 * * /root/backup.sh 2>&1 >> /var/log/backup.log
Dengan jadwal seperti diatas, maka backup otomatis VPS ke Dropbox akan dilakukan setiap 3 hari sekali pada jam 05.00 (pagi).
Kelebihan backup otomatis VPS ke Dropbox :
- Free alias gretongan! Cocok buat yang budgetnya pas-pasan. :)
- Tidak ada batasan ukuran backup yang di upload (100mb, 200mb, 300mb… nggak masalah!)
Kekurangan backup otomatis VPS ke Dropbox :
- Nggak ada batasan ukuran backup yang di upload, tapi kuota / space data Dropbox terbatas… cuman 2 Gb coy!
- Karena nggak partial seperti backup dengan rsync, maka bandwidth keluar (outgoing) bulanan VPS juga akan terpakai lebih banyak (tergantung ukuran dan seberapa banyak backup di upload tiap bulannya).
Tips agar bisa dapat lebih banyak space / penyimpanan di Dropbox
Klik “Dapatkan ruang gratis” di dashboard Dropbox sobat :
- Referensikan teman agar mendaftar di Dropbox : 250 Mb / teman yang direferensikan (maks. 16 Gb)
- Sambungkan ke Twitter dan Facebook : 125 Mb / sambungan
- Instal Dropbox di gadget anda (Android atau iOS) dan komputer anda : 48 Gb (untuk 2 tahun)
Kesimpulan
Buat sobat yang nggak punya budget banyak untuk keperluan backup VPS, mungkin dapat terbantu dengan tutorial ini – walau pun trik backup VPS ke Dropbox ini masih punya banyak kekurangan. Harapan saya semoga tutorial backup otomatis VPS ke Dropbox ini bermanfaat untuk sobat, dan jangan lupa klik “Share/Like”!
Terima kasih gan atas artilkelnya :D, saya mau menanyakan sesuatu gan.
Andaikan vps yang saya backup ada di USA dengan os Centos 6.5 32 bit, kemudian saya lakukan pada vps singapura dengan os dan versi bit yang sama persis ( hanya berbeda processor,ram dan konfigurasi pyhsical hardware), apa restore bisa dilakukan ke vps SG tersebut?.
Sekian dan terima kasih :)
asal OS dan package / module yg terinstal identik, maka 98% bisa :)
kalo kedua vps aktif, untuk migrasi mungkin bisa pake rsync atau nfs share.
Ini dia yang ane cari.. solusi gratis nge-backup data vps. 2 gb cukup kok gans buat nampung data web yg ane kelola. Good job lah.. :)