Ilustrasi proses backup konfigurasi rclone di Debian 12 menggunakan shell script dengan output arsip tar.gz terenkripsi berisi token Google Drive

Backup Manual Konfigurasi rclone di Debian 12

Artikel ini merupakan bagian kedua dari seri konfigurasi rclone untuk sinkronisasi Google Drive di Debian 12. Setelah rclone berjalan dan sinkronisasi berjalan otomatis, langkah selanjutnya adalah membuat backup konfigurasinya — mencakup file rclone.conf yang berisi token Google Drive, script sinkronisasi, serta unit systemd yang mengelola otomatisasi.

Backup ini berguna dalam tiga skenario: pemulihan saat server bermasalah, migrasi ke server baru, dan cadangan sebelum melakukan perubahan besar pada konfigurasi. Proses dilakukan menggunakan shell script yang menghasilkan arsip .tar.gz berisi semua file penting beserta metadata restore.

Catatan keamanan: File rclone.conf berisi token akses Google Drive yang memberikan akses penuh ke Google Drive. Perlakukan file backup ini seperti password — selalu enkripsi sebelum disimpan, dan jangan simpan di Google Drive yang sedang disinkronkan.


Prasyarat


Referensi Konfigurasi

ItemNilai Contoh
Folder backup/mnt/nfs-data/shared/backup-admin
User pemilik backupnamauser
Format nama filerclone-config-YYYY-MM-DD_HHMMSS.tar.gz
Lokasi log backup/var/log/rclone-backup.log

Catatan: State Bisync Tidak Disertakan dalam Backup

Backup ini sengaja tidak menyertakan folder /var/lib/rclone-bisync yang berisi state sinkronisasi.

State bisync adalah “snapshot” kondisi sinkronisasi pada waktu tertentu. Jika di-restore beberapa waktu kemudian, kondisi lokal dan cloud sudah berubah — menggunakan state lama pada kondisi baru dapat menyebabkan konflik sinkronisasi. Lebih aman membangun state baru dengan menjalankan --resync setelah restore.


Langkah 1 — Pastikan Folder Backup Ada

Jika folder ini sudah dibuat saat mengikuti artikel backup Samba, lewati langkah ini.

Verifikasi:


Langkah 2 — Buat Script Backup

Paste seluruh isi berikut:

Catatan: Jika menggunakan Proxmox web console, paste teks panjang kadang dapat memotong baris. Verifikasi isi script di langkah berikutnya sebelum dijalankan.


Langkah 3 — Jadikan Script Executable


Langkah 4 — Verifikasi Isi Script

Pastikan baris pertama adalah #!/bin/bash dan fungsi copy_item beserta baris-baris copy_item /root/.config/rclone/rclone.conf dan seterusnya ada dengan benar. Jika ada karakter aneh atau baris terpotong, edit ulang dengan nano.


Langkah 5 — Jalankan Backup

Output akan menampilkan path file backup yang dihasilkan:


Langkah 6 — Verifikasi Hasil Backup

Cek file backup:

Cek log:

Cek isi arsip:

Arsip yang valid akan memuat setidaknya:

File yang belum dibuat (seperti clean-recycle-bin.sh) akan tercatat sebagai Missing di log — ini normal, script tetap melanjutkan backup untuk file yang ada.


Langkah 7 — Enkripsi File Backup dengan Password

File backup rclone lebih sensitif dibanding backup Samba karena berisi token akses Google Drive. Enkripsi wajib dilakukan sebelum file disimpan atau dipindahkan.

Install zip jika belum tersedia:

Masuk ke folder backup:

Buat arsip zip terenkripsi (ganti NAMA_FILE dengan nama file backup yang baru dibuat):

Contoh:

Penjelasan flag:

FlagKeterangan
-jSimpan file tanpa menyertakan path direktori
-eAktifkan enkripsi dengan password

Verifikasi arsip zip:


Langkah 8 — Pindahkan Backup dari Windows

  1. Buka File Explorer di Windows
  2. Akses folder backup:
    \\192.168.1.60\Shared\backup-admin
  3. Salin file .zip ke lokasi aman — jangan simpan di Google Drive yang sedang disinkronkan; gunakan external HDD, cloud storage dengan akun berbeda, atau perangkat lain
  4. Setelah file tersimpan dengan aman, hapus dari server:

Cara Restore Backup

Langkah Restore

  1. Siapkan server Debian 12 baru, login sebagai root

  2. Install paket pendukung:
    apt update && apt install curl unzip -y
  3. Install rclone:
    curl https://rclone.org/install.sh | bash
  4. Buat folder yang diperlukan:
    mkdir -p /mnt/nfs-data/shared
    mkdir -p /var/lib/rclone-bisync
    mkdir -p /var/log/rclone
  5. Set timezone (sesuaikan):
    timedatectl set-timezone Asia/Makassar
  6. Salin file backup ke server (via SCP, SMB, USB, atau metode lain)
  7. Jika file backup terenkripsi, ekstrak dulu:
    unzip rclone-config-YYYY-MM-DD_HHMMSS.zip
  8. Ekstrak backup ke root filesystem:
    tar xzf rclone-config-YYYY-MM-DD_HHMMSS.tar.gz -C /
  9. Reload systemd:
    systemctl daemon-reload
  10. Tes koneksi Google Drive:
    rclone lsd gdrive:
    Jika muncul error token expired, lihat bagian berikutnya.
  11. Jalankan resync awal untuk membangun state bisync baru:
    rclone bisync "/mnt/nfs-data/shared" "gdrive:Home Server" \
    --workdir /var/lib/rclone-bisync \
    --resync -P \
    --create-empty-src-dirs \
    --exclude ".recycle/**" \
    --drive-acknowledge-abuse
  12. Aktifkan timer:
    systemctl enable --now rclone-bisync.timer
    systemctl enable --now recycle-cleanup.timer
  13. Verifikasi timer aktif:
    systemctl list-timers | grep -E "rclone-bisync|recycle-cleanup"

Catatan: Pastikan Samba juga sudah berjalan setelah restore. Prosedur restore Samba dibahas di artikel Backup Manual Konfigurasi Samba di Debian 12.


Penanganan Token Google Drive Expired

Token di rclone.conf dapat expired setelah lama tidak digunakan, misalnya saat restore dari backup lama.

Gejala — saat menjalankan rclone lsd gdrive: muncul:

oauth2: cannot fetch token
invalid_grant

Cara otorisasi ulang:

  1. Di Windows (CMD Administrator), jalankan:
    rclone authorize "drive" "CLIENT_ID" "CLIENT_SECRET"
    Ganti CLIENT_ID dan CLIENT_SECRET dengan nilai yang disimpan saat membuat Google API Client ID. Panduan lengkap tersedia di artikel Cara Membuat Google API Client ID Sendiri untuk rclone.
  2. Login di browser, salin token yang muncul di CMD.
  3. Di server, jalankan:
    rclone config
    Pilih e (edit existing remote) → pilih gdrive → ikuti prompt hingga bagian token, paste token baru.
  4. Verifikasi:
    rclone lsd gdrive:

Backup Berkala dengan systemd Timer (Opsional)

Aktifkan timer:

Catatan: Backup otomatis tidak disertai enkripsi password secara otomatis. Enkripsi perlu dilakukan secara manual terhadap file yang dihasilkan.


Troubleshooting

GejalaPenyebabSolusi
cp: 'root/.config/rclone': No such file or directoryScript korup akibat paste via web consoleEdit ulang dengan nano, pastikan fungsi copy_item ada dengan benar
Missing di log untuk beberapa fileFile yang ingin di-backup belum dibuat di serverNormal — script tetap melanjutkan; file yang ada tetap ter-backup
File backup tidak terlihat dari WindowsCache Windows atau permission folder salahTekan F5 di File Explorer; cek owner dan mode dengan ls -ld /mnt/nfs-data/shared/backup-admin
Setelah restore, rclone lsd gdrive: error invalid_grantToken expiredLakukan otorisasi ulang — lihat bagian “Penanganan Token Google Drive Expired”
Setelah restore, bisync error cannot find prior listingsState bisync tidak disertakan dalam backupJalankan --resync untuk membangun state baru
Password zip ditolak di Windows ExplorerWindows Explorer kurang mendukung enkripsi zipGunakan 7-Zip untuk mengekstrak file .zip terenkripsi

Cakupan Backup

Termasuk dalam backup:

  • Konfigurasi rclone (/root/.config/rclone/rclone.conf) beserta token Google Drive
  • Script sinkronisasi (rclone-bisync-home-server.sh)
  • Script pembersih recycle bin (clean-recycle-bin.sh)
  • Script backup rclone itu sendiri
  • Unit systemd untuk sync dan cleanup (service + timer)
  • Metadata: hostname, timezone, versi rclone, status timer
  • README restore singkat

Tidak termasuk dalam backup:

  • State bisync (/var/lib/rclone-bisync) — dibangun ulang dengan --resync setelah restore
  • File data di dalam folder share
  • Konfigurasi Samba — dibahas di artikel Backup Manual Konfigurasi Samba di Debian 12
  • Log file lama

Catatan Keamanan

  • Token Google Drive di rclone.conf memberikan akses penuh ke Google Drive
  • Selalu enkripsi file backup sebelum disimpan di manapun
  • Jangan simpan backup di Google Drive yang sedang disinkronkan — jika akun bermasalah, backup ikut tidak bisa diakses
  • Hapus file backup dari folder share segera setelah dipindahkan ke lokasi aman
  • Simpan Client ID dan Client Secret Google API di tempat terpisah yang aman — dibutuhkan untuk otorisasi ulang jika token expired

Referensi File

FileLokasi
Script backup/usr/local/bin/backup-rclone.sh
Log backup/var/log/rclone-backup.log
Folder backup sementara/mnt/nfs-data/shared/backup-admin
Konfigurasi rclone/root/.config/rclone/rclone.conf
Script sync/usr/local/bin/rclone-bisync-home-server.sh
Script cleanup recycle bin/usr/local/bin/clean-recycle-bin.sh
Service sync/etc/systemd/system/rclone-bisync.service
Timer sync/etc/systemd/system/rclone-bisync.timer
Service cleanup/etc/systemd/system/recycle-cleanup.service
Timer cleanup/etc/systemd/system/recycle-cleanup.timer

Ringkasan Perintah


Referensi


Catatan Penutup

Artikel ini disusun berdasarkan pengujian langsung pada lingkungan berikut:

  • Sistem Operasi: Debian 12 (Bookworm)
  • rclone: versi 1.66+
  • Google Drive: akun personal

Untuk keamanan, pastikan file backup selalu dienkripsi sebelum disimpan di lokasi manapun, termasuk di dalam folder share.


Leave a Reply

Your email address will not be published. Required fields are marked *