Panduan Lengkap: Backup Data secara Otomatis ke Kilat Storage Menggunakan Rclone dan Cron

Lindungi data kamu dengan backup otomatis ke Kilat Storage menggunakan Rclone dan Cron. Ikuti panduan lengkap di bawah ini untuk mengonfigurasi Kilat Storage di Rclone, menjadwalkan proses backup, serta penghapusan file lama agar data kamu selalu aman dan terkelola dengan baik.

Waktu baca: 12 menit • Lihat progres baca di bar atas
Oleh Fadli Muhammad Habibi
Dipublikasikan 04 Juni 2025

Halo, Kawan Belajar!

Dalam era digital saat ini, menjaga keamanan dan integritas data menjadi sangat penting. Salah satu cara efektif untuk melindungi data kamu adalah dengan melakukan backup secara otomatis. Layanan Kilat Storage dari CloudKilat menawarkan solusi penyimpanan berbasis objek yang dapat diakses melalui protokol S3, memungkinkan pengguna untuk menyimpan file backup dengan mudah dan aman.

Kilat Storage merupakan storage yang menggunakan protokol Amazon S3 di mana storage ini mendukung API dari Amazon S3. Dengan menggunakan layanan Kilat Storage, kamu dapat menyimpan file berkas apapun yang bersifat statis pada bucket yang dimiliki.

Panduan ini akan menjelaskan langkah-langkah cara melakukan backup data secara otomatis ke Kilat Storage menggunakan Rclone dan Cron. Rclone adalah tools yang sangat bermanfaat untuk mengelola file di berbagai cloud storage, sementara Cron memungkinkan penjadwalan tugas secara otomatis di sistem Linux.

Mari kita mulai dengan langkah-langkah yang diperlukan untuk mengatur backup otomatis ke Kilat Storage kamu. Silakan simak baik-baik ya!

Persiapan:

  • Layanan Kilat Storage yang berstatus Aktif

  • Komputer/laptop dengan sistem operasi Windows, Linux, atau macOS.

Instalasi Rclone

Rclone dapat diinstal di berbagai macam Sistem Operasi. Berikut adalah minimum version sistem operasi yang diperlukan untuk menginstal Rclone saat Basis Pengetahuan ini dibuat:

Gambar 1: OS Requirement Rclone

Pada Knowledge Base kali ini, kami menginstal Rclone versi 1.68.2 yang merupakan versi terbaru dari Rclone saat ini. Silakan mengunduh Rclone versi terbaru pada halaman resmi berikut (https://rclone.org/downloads/) sesuai dengan sistem operasi yang kamu gunakan.

Atau jika kamu menggunakan sistem operasi Linux, macOS, BSD, kamu dapat menjalankan perintah di bawah ini untuk penginstalan Rclone:

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

Pada OS Windows, pengaksesan Rclone dapat dilakukan melalui Command Prompt (CMD). Setelah Command Prompt dibuka, arahkan direktori di tempat Rclone berada karena, Rclone tidak dapat dijalankan jika lokasi direktori CMD tidak berada di tempat Rclone.

Gambar 2: Direktori File Rclone

Konfigurasi Rclone

Langkah selanjutnya, kita akan menambahkan layanan Kilat Storage (S3) untuk dikelola menggunakan Rclone.

$ rclone config

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

Pada bagian name ini dapat diisikan nama cloud storage yang nantinya kita kelola di Rclone.

name> kilatstorage

Kamu dapat mengetik nomor "4" untuk memilh Amazon S3 Compliant Storage Provide.

Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / 1Fichier
   \ (fichier)
 2 / Akamai NetStorage
   \ (netstorage)
 3 / Alias for an existing remote
   \ (alias)
 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
   \ (s3)
 5 / Backblaze B2
   \ (b2)
 ...
 ...
57 / Zoho
   \ (zoho)
58 / premiumize.me
   \ (premiumizeme)
59 / seafile
   \ (seafile)

Storage> 4

Di bagian S3 Provider, silakan ketik nomor "32" untuk memilih Any other S3 compatible provider.

** See help for s3 backend at: https://rclone.org/s3/ **

Option provider.
Choose your S3 provider.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
  1 / Amazon Web Services (AWS) S3
   \ (AWS)
 2 / Alibaba Cloud Object Storage System (OSS) formerly Aliyun
   \ (Alibaba)
 3 / Arvan Cloud Object Storage (AOS)
   \ (ArvanCloud)
...
...
30 / Wasabi Object Storage
   \ (Wasabi)
31 / Qiniu Object Storage (Kodo)
   \ (Qiniu)
32 / Any other S3 compatible provider
   \ (Other)

provider> 32

Pada bagian ini, kita bisa memilih nomor 1 agar nantinya pengisian kredensial layanan Kilat Storage (Access Key dan Secret Key) dimasukkan di langkah selanjutnya.

Option env_auth.
Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
Only applies if access_key_id and secret_access_key is blank.
Choose a number from below, or type in your own boolean value (true or false).
Press Enter for the default (false).
 1 / Enter AWS credentials in the next step.
   \ (false)
 2 / Get AWS credentials from the environment (env vars or IAM).
   \ (true)

env_auth> 1

Masukkan Access Key dan Secret Key dari Layanan Kilat Storage kamu. Informasi ini dapat kamu temukan di halaman Manage Service Layanan Kilat Storage pada Portal Client CloudKilat.

Baca Juga : Cara Menggunakan Layanan Kilat Storage

Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> [Access Key]

Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> [Secret Key]

Selanjutnya, ketik "1" untuk pemilihan region dan masukkan Endpoints layanan Kilat Storage, yaitu "https://s3-id-jkt-1.kilatstorage.id".

Option region.
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
 1 / Use this if unsure. Will use v4 signatures and an empty region.
   \ ""
 2 / Use this only if v4 signatures don't work, eg pre Jewel/v10 CEPH.
   \ "other-v2-signature"
region> 1

Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value. Press Enter to leave empty.
endpoint> https://s3-id-jkt-1.kilatstorage.id

Silakan klik Enter untuk pengaturan default dan melanjutkan ke konfigurasi berikutnya.

Option location_constraint.
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a value. Press Enter to leave empty.
location_constraint>

Pada bagian di bawah ini merupakan pengaturan konfigurasi Access Control List (ACL) terhadap pengelolaan layanan Kilat Storage kamu di Rclone.

Sebagai contoh, kami memilih nomor 1 agar Owner (Pemilik) dapat memiliki kendali penuh dan tidak ada pihak luar yang memiliki hak akses untuk pengaturan konfigurasi Rclone. Kedepannya, hak akses ini bisa dilakukan perubahan sesuai dengan kebutuhan kamu.

Option acl.
Canned ACL used when creating buckets and storing or copying objects.
This ACL is used for creating objects and if bucket_acl isn't set, for creating buckets too.
For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
Note that this ACL is applied when server-side copying objects as S3 doesn't copy the ACL from the source but rather writes a fresh one.
If the acl is an empty string then no X-Amz-Acl: header is added and the default (private) will be used.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
   / Owner gets FULL_CONTROL.
 1 | No one else has access rights (default).
   \ (private)
   / Owner gets FULL_CONTROL.
 2 | The AllUsers group gets READ access.
   \ (public-read)
   / Owner gets FULL_CONTROL.
 3 | The AllUsers group gets READ and WRITE access.
   | Granting this on a bucket is generally not recommended.
   \ (public-read-write)
   / Owner gets FULL_CONTROL.
 4 | The AuthenticatedUsers group gets READ access.
   \ (authenticated-read)
   / Object owner gets FULL_CONTROL.
 5 | Bucket owner gets READ access.
   | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
   \ (bucket-owner-read)
   / Both the object owner and the bucket owner get FULL_CONTROL over the object.
 6 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
   \ (bucket-owner-full-control)

acl> 1

Selanjutnya, silakan tekan tombol Enter atau mengetik "n" untuk melanjutkan.

Edit advanced config?
y) Yes
n) No (default)
y/n>  n

Silakan tinjau terlebih dulu hasil konfigurasi yang telah dilakukan sebelumnya. Jika informasi yang tertera sudah sesuai, kamu dapat mengetik "y" untuk melanjutkan.

Configuration complete.
Options:
- type: s3
- provider: Other
- access_key_id: [Access Key]
- secret_access_key: [Secret Key]
- endpoint: https://s3-id-jkt-1.kilatstorage.id
- acl: private
Keep this "kilatstorage" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote

y/e/d> y

Di bawah ini merupakan hasil jika layanan Kilat Storage sudah berhasil ditambahkan dan siap untuk dikelola menggunakan Rclone.

Current remotes:

Name                 Type
====                 ====
kilatstorage       s3

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>

Membuat Script Backup

Silakan untuk membuat file dengan nama "script-backup.sh" yang berisikan script berikut:

#!/bin/bash

# Remote storage Rclone
# remote_name="remote_storage:bucket"
remote_name="kilatstorage:mywebsite"

# Direktori yang ingin di backup
source_dir="/var/www/wordpress/"

# Membuat nama file backup dengan timestamp
now="backup-$(date +'%Y-%m-%d-%H-%M-%S')"

# Membuat file zip dari direktori source
zip -qr $now.zip $source_dir

# Mengupload file zip ke remote storage
rclone copy -v $now.zip $remote_name

# Hapus file backup di lokal
rm $now.zip

# Log jika proses backup selesai
echo "Finish backup: $remote_name - $(date +'%Y-%m-%d %H:%M:%S')" >> /var/log/cron.log

Script backup di atas bertugas untuk mengompres direktori yang ingin kamu backup menjadi file zip, kemudian mengunduh file zip tersebut ke Kilat Storage menggunakan Rclone. Script ini juga akan menghapus file zip lokal setelah proses upload selesai untuk menghemat ruang penyimpanan di server.

Penjelasan Script Backup:
  • remote_name: Variabel ini menentukan nama remote storage yang telah dikonfigurasi di Rclone. Pastikan untuk menyesuaikannya dengan nama remote storage yang kamu buat dalam file konfigurasi Rclone (rclone.conf). Untuk formatnya yaitu "remote_name:bucket". Pastikan nama bucket atau folder yang kamu masukkan telah kamu buat di Kilat Storage.

  • source_dir: Menentukan direktori yang ingin kamu backup. Kamu dapat mengubah value-nya sesuai dengan direktori yang ingin kamu backup.

  • timestamp: Digunakan untuk membuat nama file backup dengan menambahkan timestamp. Ini membantu kamu untuk membedakan setiap file backup berdasarkan waktu pembuatan, sehingga kamu tidak akan mengalami kebingungan antara file backup yang berbeda.

  • zip: Perintah ini digunakan untuk mengompres direktori yang ditentukan dalam source_dir menjadi file zip. Proses pengompresan ini memudahkan pengelolaan dan menghemat ruang penyimpanan di server.

  • rclone copy: Perintah ini digunakan untuk mengupload file zip yang telah dibuat ke Kilat Storage. Rclone akan menyalin file zip ke lokasi remote yang telah ditentukan dalam remote_name.

  • rm: Perintah ini digunakan untuk menghapus file zip lokal setelah diunggah ke Kilat Storage. Hal ini akan membantu menghemat ruang penyimpanan di server kamu dengan memastikan bahwa hanya file backup yang tersimpan di cloud.

  • echo: Perintah ini akan mencatat log waktu penghapusan selesai ke dalam file log (/var/log/cron.log). Ini berguna untuk pemantauan dan audit, sehingga kamu dapat melacak kapan proses penghapusan dilakukan

Membuat Script Penghapusan File Backup Lama

Selanjutnya, silakan untuk membuat file dengan nama "delete-old.sh" yang berisikan script berikut:

#!/bin/bash

# Remote storage Rclone
remote_name="kilatstorage:mywebsite"
file_name="backup-*"

# Menghapus file backup jika file tersebut telah disimpan dalam jangka waktu tertentu
# menggunakan --min-age
rclone delete -v --include $file_name --min-age 2d $remote_name
# menggunakan --max-age
# rclone delete -v --include $file_name --max-age 20m $remote_name

# Log jika proses backup selesai
echo "Finish delete: $remote_name - $(date +'%Y-%m-%d %H:%M:%S')" >> /var/log/cron.log

Script ini bertugas untuk menghapus file backup lama yang sudah tidak diperlukan lagi. Dengan menghapus file-file ini, kamu dapat mengelola ruang penyimpanan di Kilat Storage secara lebih efisien. Script di atas akan mencari dan menghapus file backup yang lebih tua dari jangka waktu tertentu.

Penjelasan Script:
  • remote_name: Variabel ini menentukan nama remote storage yang telah dikonfigurasi di Rclone. Pastikan untuk menyesuaikannya dengan nama remote storage yang kamu buat dalam file konfigurasi Rclone (rclone.conf).

  • file_name: Mendefinisikan pola nama file yang akan dicari untuk dihapus. Dalam script tersebut, pola yang digunakan adalah semua file yang diawali dengan nama "backup-". Hal ini memungkinkan script untuk mengidentifikasi file backup yang relevan untuk dihapus.

  • rclone delete: Perintah ini digunakan untuk menghapus file backup yang lebih tua dari jangka waktu tertentu. Dalam contoh script tersebut, file yang lebih tua dari dua hari akan dihapus. Kamu dapat menyesuaikan pengaturan waktu sesuai kebutuhan kamu, misalnya, mengubah --min-age 2d menjadi --min-age 7d jika ingin menghapus file yang lebih tua dari tujuh hari.

  • echo: Mencatat log waktu penghapusan selesai ke dalam file log (/var/log/cron.log) yang berguna untuk pemantauan dan audit, sehingga kamu dapat melacak kapan proses penghapusan dilakukan.

Menjadwalkan Tugas dengan Cron

Cron merupakan perangkat di sistem Unix/Linux yang memungkinkan pengguna untuk menjadwalkan tugas (task) agar dijalankan secara otomatis pada waktu tertentu. Dengan menggunakan Cron, kamu dapat menjadwalkan script backup dan penghapusan sehingga tidak perlu menjalankannya secara manual setiap kali. Berikut langkah-langkahnya:

  1. Buka crontab untuk mengedit cron:
crontab -e
  1. Tambahkan baris berikut untuk menjadwalkan script:
# Backup setiap hari kerja pada pukul 23:59
59 23 * * 1-5 /var/www/rclone-sh/script-backup.sh

# Hapus file backup lama setiap hari
@daily /var/www/rclone-sh/delete-old.sh
Penjelasan Jadwal Cron:
  • Baris pertama menjadwalkan skrip script-backup.sh untuk dijalankan setiap hari kerja (Senin sampai Jumat) pada pukul 23:59.

  • Baris kedua menjadwalkan skrip delete-old.sh untuk dijalankan setiap hari.

Catatan:

  • Pastikan untuk menyesuaikan lokasi direktori file kamu dengan lokasi yang sesuai di server kamu.

  • Untuk mengatur jadwal backup, kamu dapat memanfaatkan tools seperti crontab.guru yang menyediakan antarmuka pengguna untuk membantu memahami dan menulis sintaks cron dengan lebih mudah.

Kesimpulan

Dengan mengikuti panduan ini, kamu dapat melakukan backup data secara otomatis ke Kilat Storage menggunakan Rclone dan Cron. Proses ini tidak hanya memastikan bahwa data kamu selalu terjaga, tetapi juga mengoptimalkan penggunaan ruang penyimpanan dengan menghapus backup lama secara otomatis. Pastikan untuk memantau log yang dihasilkan untuk memastikan bahwa semua proses berjalan lancar.

Butuh bantuan lebih lanjut?

Jangan ragu untuk menghubungi tim support kami jika Anda memiliki pertanyaan atau masalah terkait layanan CloudKilat.