Backup Data VM ke Google-Drive dengan Rclone

Sebenarnya banyak cara untuk backup data VM Anda, bisa dengan cara snapshot menggunakan pihak ke-3 seperti Acronis atau Veams. Karena cara tersebut berbayar, ada cara backupnya yang gratis menggunakan rclone. Nah disini saya akan share cara backup data ke google-drive menggunakan rclone.

Install Rclone

Install rclone tidak bisa secara default dari repo OS nya baik Ubuntu, Fedora, Manjaro maupun CentOs. Jadi Anda bisa install menggunakan script dari rclone , sebelunya pastikan sudah install curl terlebih dahulu. Karena disini saya menggunakan CentOs bisa dengan cara :

sudo yum install curl

Lalu jalankan perintah berikut ini:

sudo curl https://rclone.org/install.sh | sudo bash

Tunggu hingga proses instalasinya sudah selesai.
enter image description here

Setup Rclone

Jika instalasinya sudah selesai, silakan setup rclone untuk connect ke remote storagenya misal Google-Drive. Jalankan perintah berikut:
rclone config
enter image description here
Pada waktu setup ada beberapa pertanyaan yang harus diisiikan, berikut contohnya:
enter image description here
enter image description here
Pilih nomor 16 (google-drive)
Untuk client_ID nya Anda bisa membuat di Google-API-Consolenya terlebih dahulu.
Login ke akun Anda dan buatlah projectnya terlebih dahulu, lalu klik create.
enter image description here
Selanjutnya klik "Enable APIS and Services" seperti pada gambar berikut ini, dan cari google-drive lalu aktifkan.
enter image description here
enter image description here
Langkah selanjutnya, klik menu Credentials dan pilih "Configure Consent Screen", dan pilih opsi External.
enter image description here
Isikan nama apps dan email sesuai dengan kebutuhan Anda:
enter image description here
Kemudian, klik "Create Credentials" dan pilih "OAuth Client ID":
enter image description hereenter image description here
Taraaa, client ID dan client Secret sudah didapatkan, masukkan pada saat setup rclone config diatas dan pilih opsi 1 full acess.
Pada tahap selanjutnya pilih default setting saja.
enter image description here
Untuk verifikasi, silakan copy&paste link yang sudah digenerate untuk allow access google-drive Anda:
enter image description here
Jika Anda mendapatkan error 403 Access Denied seperti pada gambar berikut, berarti Anda belum menambahkan akun/email. Silakan ditambahkan user email Anda pada Google API Console:
enter image description here
Klik Add Users, dan tambahkan email Anda.
enter image description here
Reload page link sebelumnya dan klik Continue:
enter image description here
Setelah itu, Anda akan mendapatkan code verification dan paste ke rclone confignya:
enter image description here
Pilih default opsi (pilih y).
enter image description here

Backup Script

Setelah Anda sudah install dan config rclonenya, Anda bisa test backup menggunakan script berikut ini, buat nama file dengan nama upload.sh:

#!/bin/bash

/usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s "/home/imonk" "google-drive:BackupData"

Keterangan:

  • Copy: Copy data dari local storage ke remote storage, jika ada file existing akan direplace / overwrite.
  • --update: Skip file di remote storage jika terdapat file yang lebih baru daripada file di local storage
  • --verbose : Memberikan output proses transfer hingga selesai
  • --transfers 30: Menetapkan jumlah file yang dicopy secara paralel
  • --checkers 8: Seberapa banyak pengecekan yang berjalan secara paralel. Cheker bisa monitoring selama proses transfer berlangsung
  • --contimeout 60s: The Connection Timeout, set waktu dimana rclone akan mencoba connect ke remote storage
  • timeout 300s: Jika terdapat kendala koneksi dari local storage ke remote storage dalam waktu 300s, maka proses transfer akan gagal.
  • --retries 3: Jika terdapat proses copy yang gagal, maka akan terdapat action restart copy.
  • --low-level-retries 10: Kurang lebih sama seperti parameter retries, dimana tingkatnya ini lebih rendah seperti request single HTTP.
  • --stats 1s: rclone dapat memberikan output static hasil transfer
  • "/home/imonk": Local directory yang akan dicopy ke google-drive
  • "google-drive: BackupData": Remote directory, jika tidak ada nanti akan secara otomatis rclone membuat direktori baru dengan nama "BackupData".

Beri hak akses pada file tersebut:

chmod +x upload.sh

Jalankan Script

Move file upload.sh ke folder /usr/bin/ agar bisa diexecute secara langsung. Setelah itu, jalankan script dengan perintah:

upload.sh

Silakan tunggu beberapa waktu hingga proses transfernya selesai, berikut contoh outputnya:
enter image description here
Apabila Anda ingin menjalankan scriptnya secara otomatis bisa setup cron dan sesuaikan dengan waktu kebutuhan Anda. Berikut contohnya:

Jalankan perintah:

crontab -e 

Tambahkan baris baru berikut pada bagian paling akhir:

0 0 * * * upload.sh

Keterangan:
0 0 * * * : Cron akan dieksekusi setiap waktu jam 12 tengah malam.

Kesimpulan

Rclone adalah salah satu tool untuk backup data ke remote storage seperti google-drive, dropbox, amazon drive, Hubix, Pcloud, dll secara free/open source. Untuk detail parameter yang lebih lengkap bisa dilihat pada link berikut.

Untuk selanjutnya cara restorenya bisa dilihat pada link berikut.

Leave a Reply