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.
Setup Rclone
Jika instalasinya sudah selesai, silakan setup rclone untuk connect ke remote storagenya misal Google-Drive. Jalankan perintah berikut:
rclone config
Pada waktu setup ada beberapa pertanyaan yang harus diisiikan, berikut contohnya:
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.
Selanjutnya klik "Enable APIS and Services" seperti pada gambar berikut ini, dan cari google-drive lalu aktifkan.
Langkah selanjutnya, klik menu Credentials dan pilih "Configure Consent Screen", dan pilih opsi External.
Isikan nama apps dan email sesuai dengan kebutuhan Anda:
Kemudian, klik "Create Credentials" dan pilih "OAuth Client ID":
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.
Untuk verifikasi, silakan copy&paste link yang sudah digenerate untuk allow access google-drive Anda:
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:
Klik Add Users, dan tambahkan email Anda.
Reload page link sebelumnya dan klik Continue:
Setelah itu, Anda akan mendapatkan code verification dan paste ke rclone confignya:
Pilih default opsi (pilih y).
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:
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.