BelajarDev merupakan bagian dari eksperimen Muhammad Ikhsan di Smartech Studios.
Server Backup — Upload Otomatis ke Google Drive pakai `gdrive` dan `cron`
Kenapa Perlu Auto-Backup ke Google Drive?
Insiden kehilangan data bisa menjadi mimpi buruk terutama ketika kita berbicara tentang "data yang di server". Kesalahan sistem, serangan malware atau ransomware, hingga penghapusan tidak disengaja bisa menyebabkan hilangnya data penting secara permanen.
Karena itu, memiliki backup otomatis ke cloud storage seperti Google Drive adalah langkah mitigasi yang masuk akal untuk diterapkan di server.
Backup otomatis memastikan data tetap tersimpan tanpa perlu intervensi manual. Google Drive sendiri menawarkan penyimpanan yang mudah diakses, relatif stabil, dan cukup praktis untuk kebutuhan backup skala kecil dan non-critical.
Di catatan ini, kita akan membahas cara melakukan auto-backup dari server Ubuntu ke Google Drive menggunakan gdrive dan cron. Ini bisa dipraktikkan juga pakai distro Linux lainnya.
1. Persiapan Awal: Instalasi gdrive
1.1 Instal Gdrive
Pastikan perintah ini dijalankan sebagai root atau menggunakan sudo:
wget -O gdrive.tar.gz https://github.com/glotlabs/gdrive/releases/latest/download/gdrive-linux-x64.tar.gz
tar -xzf gdrive.tar.gz
sudo install gdrive /usr/local/bin/gdrive
Setelah instalasi selesai, pastikan gdrive dapat dijalankan:
gdrive version
Jika versi muncul, berarti instalasi berhasil.
1.2 Autentikasi ke Google Drive
Hubungkan server ke akun Google Drive:
gdrive about
Ikuti instruksi:
- buka URL di browser
- login ke akun Google
- salin kode autentikasi ke terminal
Setelah proses ini selesai, gdrive siap digunakan.
2. Menentukan Direktori yang Akan Dibackup
Tentukan direktori yang ingin dibackup. Contoh:
/var/www/html
Direktori ini biasanya berisi file aplikasi web.
2.1 Membuat Arsip Backup
tar -czf /tmp/backup_html.tar.gz /var/www/html
2.2 Mengunggah ke Google Drive
gdrive upload --parent <FOLDER_ID> /tmp/backup_html.tar.gz
Untuk mendapatkan FOLDER_ID:
gdrive list --query "mimeType = 'application/vnd.google-apps.folder'"
Buat folder target, jika belum ada folder khusus:
gdrive mkdir backup_html
3. Otomatisasi dengan Cron
Cron digunakan untuk menjalankan proses secara terjadwal.
3.1 Menjadwalkan Backup Harian
Edit crontab:
crontab -e
Tambahkan:
0 2 * * * tar -czf /tmp/backup_html.tar.gz /var/www/html && gdrive upload --parent <FOLDER_ID> /tmp/backup_html.tar.gz --quiet
Artinya:
- backup dijalankan setiap hari pukul 02:00
3.2 Memastikan Cron Aktif
systemctl status cron
Jika belum aktif:
sudo systemctl start cron
sudo systemctl enable cron
4. Verifikasi dan Monitoring
Backup tanpa verifikasi itu berisiko. Pastikan semuanya berjalan.
4.1 Cek File di Google Drive
gdrive list
4.2 Menyimpan Log
Tambahkan logging:
0 2 * * * tar -czf /tmp/backup_html.tar.gz /var/www/html && gdrive upload --parent <FOLDER_ID> /tmp/backup_html.tar.gz --quiet >> /var/log/backup.log 2>&1
Cek log:
tail -f /var/log/backup.log
5. Restorasi Data
Backup tidak ada artinya kalau tidak bisa direstore.
5.1 Download Backup
gdrive download <FILE_ID> --path /tmp/
Cari FILE_ID:
gdrive list
5.2 Restore File
cd /var/www/html
sudo tar -xzf /tmp/backup_html.tar.gz
Pastikan aplikasi kembali berjalan normal.
6. (Opsional) Enkripsi Backup
Untuk keamanan tambahan, kita bisa menerapkan enkripsi ke file sebelum di-upload.
6.1 Enkripsi
gpg --symmetric --cipher-algo AES256 --output /tmp/backup_html.tar.gz.gpg /tmp/backup_html.tar.gz
gdrive upload --parent <FOLDER_ID> /tmp/backup_html.tar.gz.gpg
6.2 Dekripsi
gpg --output /tmp/backup_html.tar.gz --decrypt /tmp/backup_html.tar.gz.gpg
7. Bonus: Script dan Alternatif Solusi
Kalau solusi backup ini ingin ditingkatkan lagi, bisa lakukan hal-hal berikut:
- rotasi backup (hapus file lama otomatis)
- penamaan file berbasis tanggal
- notifikasi jika backup gagal
Lihat catatan snippet berikut untuk mendapatkan script-nya:
[[Backup Script — Auto Backup ke Google Drive (gdrive+cron)]]
Google Drive memang cukup nyaman untuk backup ringan (apalagi sekarang masih free 15GB storage). Ini cocok untuk VPS kecil, personal/side project, environment non-critical. Akan tetapi untuk kebutuhan yang critical dan lebih serius lebih baik mempertimbangkan alternatif solusi yang lebih robust untuk backup, seperti:
- object storage S3-compatible
- backup snapshot di level block storage
- pakai solusi seperti
resticatauborgbackup, tool yang memang spesifik menangani backup
Sebagai catatan tambahan, contoh-contoh di atas hanya mem-backup /var/www/html. Ini bisa disesuaikan dengan kebutuhan. Misalnya kalau perlu backup database, mungkin perlu tool mysqldump atau pg_dump.
Perlu diingat juga, backup tidak akan begitu berarti bila file backup tidak dapat di-restore. Oleh karenanya, di skenario real, lakukan uji restore secara berkala.
Kesimpulan
Dengan konfigurasi ini, server sudah memiliki mekanisme backup otomatis ke Google Drive. Risiko kehilangan data bisa ditekan tanpa menambah beban operasional harian.
Sekali setup, proses berjalan sendiri.
Backup itu seperti asuransi: tidak terasa penting sampai benar-benar dibutuhkan.