Halo Sobat Online! Pernah tidak kepikiran, kalau suatu hari VPS kamu tiba-tiba mati total, salah ketik perintah yang menghapus folder, atau kena ransomware — data di dalamnya ikut hilang semua? Banyak pemilik website baru sadar pentingnya backup setelah kejadian, bukan sebelumnya. Padahal bikin backup VPS otomatis ke cloud sekarang ini tidak butuh skill dewa sysadmin: cukup satu tool open-source bernama rclone plus systemd timer yang sudah ada di semua VPS Linux.
Di artikel ini kita praktik langsung: install rclone, menyambungkannya ke cloud, menulis script backup database dan file website, lalu menjadwalkannya agar berjalan sendiri setiap hari. Semua perintahnya bisa disalin-tempel, dan di akhir ada cara uji restore — karena backup yang belum pernah diuji restore itu cuma harapan, bukan cadangan.
Kenapa Backup VPS Otomatis Itu Wajib, Sih?
Anggap VPS itu seperti rumah sewa yang isinya barang berharga. Selama kita masih mengontrak, barangnya aman. Masalahnya, tidak semua hal yang bisa merusak isi rumah datang dari kita sendiri:
- Human error — salah ketik
rm -rf, salah edit config, atau salah jalankan migrasi database. - Serangan siber — ransomware dan defacement sering menghapus data sebelum ketahuan.
- Kegagalan disk atau node — provider VPS boleh punya SLA, tapi disk tetap bisa rusak.
- Masalah akun — tagihan tertunda, akun di-suspend, atau kamu ingin pindah provider.
Kalau backup masih manual (unduh lewat SFTP sesekali, misalnya), cepat atau lambat pasti terlupa. Di situlah backup VPS otomatis menyelamatkan hari: jadwalnya jelas, hasilnya tercatat, dan kamu bisa tidur tenang.
Apa Itu rclone dan Kenapa Cocok untuk Backup VPS?
rclone sering dijuluki “rsync-nya cloud storage”. Ia berupa satu file binary berbahasa Go dan mendukung puluhan penyimpanan: Backblaze B2, Cloudflare R2, Amazon S3, SFTP, Google Drive, dan masih banyak lagi.
Beda dengan rsync biasa, rclone berbicara langsung dengan object storage lewat API, jadi tidak perlu mount apa pun. Versi stabil terbaru saat artikel ini ditulis adalah rclone v1.75.1 (September 2026), dan setelah terpasang kamu bisa memperbaruinya kapan saja dengan rclone selfupdate.
Persiapan Sebelum Mulai
Siapkan empat hal ini dulu supaya prosesnya lancar:
- VPS Linux (panduan ini memakai Ubuntu) dengan akses root atau user bersudo.
- Penyimpanan cloud sebagai tujuan backup: Backblaze B2, Cloudflare R2, IDrive e2, atau Google Drive.
- Application Key dari penyimpanan yang kamu pilih (kita bahas di langkah 2).
- Perkiraan ukuran data — jalankan
du -sh /var/wwwagar kamu tahu berapa kuota cloud yang perlu disiapkan.
Langkah 1: Install rclone di VPS
Masuk ke VPS lewat SSH, lalu jalankan script instalasi resmi dari rclone.org:
ssh root@IP-VPS
sudo -v ; curl https://rclone.org/install.sh | sudo bash
rclone version
Perintah rclone version akan menampilkan versi yang terpasang. Kalau kamu lebih suka jalur paket distro, sudo apt install rclone juga bisa, hanya saja versinya biasanya lebih tua dari rilis resmi.
Langkah 2: Sambungkan VPS ke Penyimpanan Cloud
Ada dua cara: interaktif (dituntun pertanyaan) atau langsung (non-interaktif). Kita mulai dari yang paling cepat, memakai Backblaze B2 sebagai contoh.
Cara Cepat: Buat Remote Non-Interaktif
Buat dulu Application Key di panel Backblaze (menu Application Keys), lalu catat dua nilainya: keyID dan applicationKey.
rclone config create b2backup b2 account "KEY_ID_KAMU" key "APPLICATION_KEY_KAMU"
rclone listremotes
Perintah di atas langsung menulis remote bernama b2backup ke file config rclone. Penting: isi bagian account dengan Application Key ID, bukan master Account ID — kalau tertukar, Backblaze akan membalas error 401.
Alternatif: Mode Interaktif rclone config
Kalau ingin penyimpanan lain, jalankan rclone config, pilih n) New remote, beri nama, lalu pilih tipe storage-nya (misal drive untuk Google Drive). Dua catatan penting untuk Google Drive:
- rclone memakai shared client_id bersama yang dihentikan selama 2026. Jadi sebaiknya buat Client ID dan Client Secret sendiri di Google Cloud Console, lalu isikan saat ditanya.
- Karena VPS tidak punya browser, jawab n pada pertanyaan “Use web browser to automatically authenticate rclone”. rclone akan memintamu menjalankan
rclone authorize "drive"di komputer yang ada browsernya, lalu menempelkan token hasilnya ke VPS.
Langkah 3: Tes Koneksi dan Buat Folder Tujuan
Sebelum menulis script apa pun, pastikan koneksinya benar:
rclone lsd b2backup:
rclone mkdir b2backup:backup-vps
rclone lsf b2backup:backup-vps
lsd menampilkan daftar bucket, sedangkan mkdir membuat folder tujuan. Satu hal yang perlu kamu tahu: Backblaze B2 tidak mendukung perintah rclone about, jadi untuk melihat total ukuran pakai rclone size b2backup:backup-vps.
Langkah 4: Bikin Script Backup-nya
Sekarang kita susun scriptnya. Buat direktori kerja dulu:
sudo mkdir -p /opt/backup-scripts /var/backups
sudo chmod 700 /var/backups
Lalu buat file /opt/backup-scripts/backup-vps.sh dengan isi berikut:
#!/usr/bin/env bash
set -euo pipefail
REMOTE="b2backup:backup-vps"
DATE="$(date +%F)"
WORKDIR="/var/backups"
mysqldump --single-transaction --quick --routines \
--databases namadb | gzip > "$WORKDIR/db-$DATE.sql.gz"
# 2. Arsipkan file website
tar -czf "$WORKDIR/www-$DATE.tar.gz" -C /var/www html
# 3. Kirim ke cloud (copy selalu aman: tidak pernah menghapus file di tujuan)
rclone copy "$WORKDIR" "$REMOTE/$DATE" \
--transfers 8 \
--log-file /var/log/backup-vps.log \
--log-level INFO
# 4. Bersihkan file lokal yang umurnya lebih dari 2 hari
find "$WORKDIR" -type f -mtime +2 -delete
Aktifkan izin eksekusi dan uji jalankan sekali secara manual:
sudo chmod +x /opt/backup-scripts/backup-vps.sh
sudo /opt/backup-scripts/backup-vps.sh
Dua hal yang perlu diperhatikan pada script di atas:
- Kita memakai
rclone copy, bukansync. Perintah copy hanya menambah dan memperbarui file di cloud, tidak pernah menghapus apa pun di sana — jauh lebih aman untuk pemula. - Opsi
--single-transactiondan--quickadalah cara resmimysqldumpmengambil snapshot database yang konsisten tanpa mengunci aplikasi, dan tanpa membuffer tabel besar di RAM.
Langkah 5: Jadwalkan Otomatis dengan systemd Timer
Daripada menambah entri crontab, kita pakai systemd timer: lognya masuk ke journald, dan ada opsi Persistent=true yang akan menjalankan backup yang terlewat kalau VPS sedang mati saat jadwalnya tiba.
Buat /etc/systemd/system/backup-vps.service:
[Unit]
Description=Backup VPS harian ke cloud
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=root
Nice=10
IOSchedulingClass=idle
ExecStart=/opt/backup-scripts/backup-vps.sh
Lalu /etc/systemd/system/backup-vps.timer:
[Unit]
Description=Jadwal backup VPS harian
[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true
RandomizedDelaySec=10m
[Install]
WantedBy=timers.target
Terakhir, aktifkan dan periksa jadwalnya:
sudo systemctl daemon-reload
sudo systemctl enable --now backup-vps.timer
systemctl list-timers backup-vps.timer
systemd-analyze calendar "*-*-* 02:30:00"
Perhatikan: yang di-enable adalah file .timer, bukan .service-nya. Itu sebabnya unit .service tidak butuh bagian [Install].
Langkah 6: Verifikasi Hasil dan Uji Restore
Besok paginya, cek apakah backup benar-benar sampai ke cloud:
rclone lsl b2backup:backup-vps --max-depth 2
journalctl -u backup-vps.service -n 50 --no-pager
Kalau ingin membandingkan isi lokal dan cloud, gunakan rclone check /var/backups b2backup:backup-vps/$(date +%F).
Sekarang bagian terpenting: uji restore ke direktori sementara supaya kamu tahu file backupnya benar-benar bisa dipakai.
rclone copy b2backup:backup-vps/2026-09-24/db-2026-09-24.sql.gz /tmp/
gunzip -c /tmp/db-2026-09-24.sql.gz | mysql
tar -xzf /tmp/www-2026-09-24.tar.gz -C /var/www
Jangan menunggu musibah untuk mencobanya. Latihan restore sekali di awal akan menghemat berjam-jam panik di kemudian hari.
Bonus: Simpan Versi Lama dengan --backup-dir
Kalau kamu ingin folder di cloud selalu berisi data terbaru, rclone sync bisa dipakai — tapi hati-hati, sync menghapus file di tujuan yang tidak ada di sumber. Supaya versi lama tidak hilang, arahkan file yang terhapus ke folder arsip:
rclone sync --interactive /var/backups b2backup:backup-vps/current \
--backup-dir b2backup:backup-vps/lama/$(date +%F)
Dengan opsi ini, file yang seharusnya ditimpa atau dihapus justru dipindahkan ke folder arsip, bukan dibuang. Syaratnya, folder arsip harus berada di remote yang sama dengan tujuan sync.
Kendala yang Sering Muncul
- Error 401 saat mengunggah — bagian
accountpada config diisi master Account ID, padahal seharusnya Application Key ID. config not foundsaat dijalankan systemd — service berjalan sebagai root, jadi rclone membaca/root/.config/rclone/rclone.conf. Cek lokasinya dengansudo rclone config file, dan pastikan config dibuat saat kamu memakaisudo.- Unggahan terasa lambat — B2 lebih cepat kalau paralelnya ditambah, misalnya
--transfers 8 --checkers 16. - Tidak ada notifikasi kalau gagal — pantau dengan
journalctl -u backup-vps.service, atau tambahkan panggilancurlke API Telegram di akhir script supaya kamu dapat pesan tiap backup selesai.
Kesimpulan
Dengan rclone dan systemd timer, kita baru saja membuat sistem backup VPS otomatis yang berjalan setiap hari tanpa perlu diingat-ingat lagi: database di-dump secara konsisten, file website diarsipkan, lalu semuanya dikirim ke penyimpanan cloud yang terpisah dari VPS-mu.
Luangkan 15 menit hari ini untuk menyiapkannya, dan setelah itu jadwalkan pengujian restore rutin sebulan sekali. Sobat Online, menjaga data itu bukan soal takut kehilangan, tapi soal siap sebelum kehilangan. Selamat bikin backup pertamamu — dan semoga backupnya tidak pernah perlu dipakai! 🚀

