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:

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:

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:

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:

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.


BelajarDev merupakan bagian dari eksperimen Muhammad Ikhsan di Smartech Studios.