Cara Install dan Konfigurasi RClone Untuk Backup Data ke Berbagai Layanan Cloud

rclone Nov 17, 2019

Awalnya, penulis mencari solusi untuk backup otomatis file-file di server debian penulis, ke server lain dengan provider lain untuk keamanan data, ketemulah penulis dengan rsync, sebenarnya bisa saja via FTP atau SCP, namun rsync punya kelebihan yaitu kemampuan untuk transfer hanya pada file yang berbeda saja jika file sudah ada, atau sering disebut sebagai delta backup, penulis menyiapkan satu server khusus untuk backup saja. namun karena harus menyediakan server lagi, tetap memakan biaya :D, kelemahannya, saya tidak bisa sync dengan dropbox, google drive dan layanan cloud lainnya.

RClone Solusi untuk Backup ke Layanan Cloud

Setelah lama mencari, akhirnya penulis ketemu RClone, RClone bekerja hampir sama dengan rsync, yaitu tools untuk singkronisasi file, bedanya, RClone bisa digunakan hampir semua layanan Cloud ataupun self-hosted Cloud, yaitu Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dreamhost, Dropbox, FTP, Google Cloud Storage, Google Drive, HTTP, Hubic, Jottacloud, IBM COS S3, Memset Memstore, Mega, Microsoft Azure Blob Storage, Microsoft OneDrive, Minio, Nextcloud, OVH, OpenDrive, Openstack Swift, Oracle Cloud Storage, ownCloud, pCloud, put.io, QingStor, Rackspace Cloud Files, SFTP, Wasabi, WebDAV, Yandex Disk, The local filesystem.

Perintah / Commandnya pun hampir sama dengan rsync, RClone saat ini penulis pakai disemua server penulis untuk urusan backup-backup file-file database dan juga file web. jika dikombinasikan dengan cronjob akan sangat berguna sekali untuk backup rutin, namun agar proses tidak lama, file website sebaiknya di zip terlebih dahulu sebelum di sync menggunakan RClone, karena akan memakan waktu lama jika filenya kecil-kecil dan banyak.

Cara Install RClone

Rclone hampir tersedia disemua sistem operasi, tinggal download disitus resminya disini. atau untuk versi terupdate dan beta via githubnya juga ada disini.

Rclone download page

Bagi pengguna sistem operasi Linux/macOS/BSD, lebih mudah install via bash script, jalankan perintah berikut di command line anda :

#pindah direktori ke /usr/src (optional)
cd /usr/src

#untuk versi stabil terbaru jalankan command berikut :
curl https://rclone.org/install.sh | sudo bash

#untuk versi beta jalankan command berikut :
curl https://rclone.org/install.sh | sudo bash -s beta

#check versi
rclone -V

#output
rclone v1.42
- os/arch: linux/amd64
- go version: go1.10.1
install rclone

jika versi terlihat, installasi berhasil.

Membuat Konfigurasi Rclone dengan Rclone Config

Rclone Config berguna untuk menyimpan configurasi remote ke layanan cloud yang akan kita buat, rclone dapat menghandle singkron ke banyak remote cloud, jadi satu server bisa backup/transfer file ke berbagai layanan cloud yang berbeda. kita tinggal mengisi credential dari setiap layanan cloud yang mau kita gunakan.

Rclone Config untuk Google Drive

Untuk menambahkan akun google drive anda, ikuti langkah berikut :

#masuk ke rclone config
rclone config

#output
Current remotes:

Name                 Type
====                 ====
NajaBackblazeB2      b2
NajaWebdavCloud      webdav

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> 

#ketikkan 'n' untuk membuat config baru
n

#masukkan nama config
name > NajaGoogleDrive

#output storage yang bisa diconfigure
Type of storage to configure.                                                                                                                                             
Choose a number from below, or type in your own value                                                                                                                     
 1 / Alias for a existing remote
    "alias"
 2 / Amazon Drive
    "amazon cloud drive"
 3 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
    "s3"
 4 / Backblaze B2
    "b2"
 5 / Box
    "box"
 6 / Cache a remote
    "cache"
 7 / Dropbox
    "dropbox"
 8 / Encrypt/Decrypt a remote
    "crypt"
 9 / FTP Connection
    "ftp"
10 / Google Cloud Storage (this is not Google Drive)
    "google cloud storage"
11 / Google Drive
    "drive"
12 / Hubic
    "hubic"
13 / Local Disk
    "local"
14 / Mega
    "mega"
15 / Microsoft Azure Blob Storage
    "azureblob"
16 / Microsoft OneDrive
    "onedrive"
17 / OpenDrive                   
    "opendrive"
18 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
    "swift"   
19 / Pcloud   
    "pcloud"   
20 / QingCloud Object Storage                                     
    "qingstor"
21 / SSH/SFTP Connection
    "sftp"  
22 / Webdav                  
    "webdav"  
23 / Yandex Disk        
    "yandex"
24 / http Connection
    "http"  
Storage>

#masukkan angka sesuai cloud yang digunakan (misal google drive 11)
Storage> 11 

#Masukkan Client Id, kosongkan saja
Google Application Client Id - leave blank normally.
client_id>

#Masukkan Client Secret key, Kosongkan saja
Google Application Client Secret - leave blank normally.
client_secret> 

#pilih scope rclone untuk google drive
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
    "drive"
 2 / Read-only access to file metadata and file contents.
    "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
    "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
    "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
    "drive.metadata.readonly"
scope> 

#masukkan 1 untuk full access (sesuai kebutuhan)
scope> 1

#masukkan root folder, kosongkan saja
ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).                                                                        
root_folder_id>

#masukkan Service Account Credentials, kosongkan saja
Service Account Credentials JSON file path  - leave blank normally.
Needed only if you want use SA instead of interactive login.
service_account_file>

#masukkan N jika kita login menggunakan remote headless (cth: ssh ke server)
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=8e18725fe08eaa533ba7cb5a509f2c25
Log in and authorize rclone for access
Enter verification code>
rclone config

Buka pada browser link yang diberikan, kemudian login ke akun google anda

rclone to google drive

Klik tombol Allow

rclone auth key google drive

Nah copy kembali code tadi, masukkan kembali pada bagian rclone config sebelumnya

#memasukkan code access
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=8e18725fe08eaa533ba7cb5a509f2c25
Log in and authorize rclone for access
Enter verification code>  4/0QAwQHXd_9RgBFgsqxIhZWEJtEjAvQWhPlk9Hj-W7TDQKhRufw4vVPs

# Masukkan Y untuk dikonfig sebagai team drive, atau N untuk tidak
Configure this as a team drive?
y) Yes
n) No
y/n> n

#output
[NajaGoogleDrive]
type = drive
client_id =
client_secret =
scope = drive
root_folder_id =
service_account_file =
token = {"access_token":"ya29.GluQBqUwE0EzCTYYzEcnu8U2OD0NVwM3IkZ6A2THCo4h6BFsM3DUlqqBBz0iX1yrg37Jldf-L-t4XA6HAle2T0EiOAvfGJO1CHdAe80C-y1bQFVhBdE-ER3WV4P4","token_type":"Bearer","refresh_token":"1/QATie7z3WFbBbfj0xwMSJRWdswNIRSEBcV0OtL7IGjI","expiry":"2019-01-13T19:06:49.218862266Z"}
team_drive =
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d>

#Masukkan Y untuk simpan
y/e/d> y

#output
Name                 Type
====                 ====
NajaBackblazeB2      b2
NajaGoogleDrive      drive
NajaWebdavCloud      webdav

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> 

#masukkan q untuk keluar
e/n/d/r/c/s/q> q
rclone to google drive

jika sudah, coba list file yang ada pada google drive kita dengan perintah

#list direktori pada cloud, jangan lupa titik duanya (:) 
rclone ls NajaGoogleDrive: 
#output 
8963934 sisteminformasime.com27-03-2016.zip 
35741982 slide-workshop.pptx 
32518494 slide-workshop2.pptx 
32518309 slide-workshop2.ppt
rclone ls google drive

Kita sudah sukses menambahkan konfigurasi google drive ke RClone, sehingga dapat kita pakai untuk command lainnya.

Rclone Config untuk Dropbox

Untuk dropbox dan layanan cloud lainnya sama, tinggal ikuti saja instruksi sesuai dengan parameter yang diperlukan rclone untuk config. ikuti lagi dari perintah rclone config berikut ini (versi singkat) :

#rclone config
rclone config
e/n/d/r/c/s/q> n
name> NajaDropbox
Storage> 7
client_id> 
client_secret>
#Use auto config?
y/n > y

#output
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
rclone to dropbox

tunggu sesaat, maka browser akan terbuka, pastikan dropbox terinstall ya :D

rclone akses dropbox

Klik tombol bolehkan

rclone sukses koneksi dengan dropbox

Jika outputnya sukses, periksa kembali terminal anda, berikut output terminalnya


Got code
--------------------
[NajaDropbox]
type = dropbox
token = {"access_token":"JQDX1IhcN80AAAAAAACJmPr8bVjBkQ-UB3RwJfrfgyGgV3DzIvO7ZiyPm4U4HT8h","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> 

#pilih y untuk save
y/e/d> y
#kemudian q untuk exit
rclone dropbox config

Rclone Config untuk Berbagai Object Storage (BackBlaze B2, AWS, Ceph, Dreamhost, IBM COS, Minio, Wasabi DLL)

Akan penulis demokan menggunakan Backblaze B2, object storage yang lainnya hampir sama saja, yaitu perlu access id dan access key, berikut langkah-langkahnya :

#jalankan config
rclone config

#buat config baru
e/n/d/r/c/s/q> n
#buat nama config
name> NajaBackblaze
#storage backblaze b2 nomor 4
storage> 4
#Account ID
account> ###########
#Application Key
key> #########################################
#Endpoint for the service, kosongkan saja
endpoint> 

#klik y untuk save
y/e/d> y
rclone config backblaze

nah begitulah cara membuat config remote berbagai layanan cloud, nanti akan kita bahas studi kasus yang sesuai untuk menggunakan rclone.

M. Najamudin Ridha

Penikmat coffe cappucino ice, apalagi tanpa gula. Menyukai teknologi open source, terutama yang berbasis web dan mobile, senang mencoba hal - hal seperti linux, sysadmin, database dan programming