Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

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.confberisi 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.
/mnt/nfs-data/shared/usr/local/bin/rclone-bisync-home-server.shroot| Item | Nilai Contoh |
|---|---|
| Folder backup | /mnt/nfs-data/shared/backup-admin |
| User pemilik backup | namauser |
| Format nama file | rclone-config-YYYY-MM-DD_HHMMSS.tar.gz |
| Lokasi log backup | /var/log/rclone-backup.log |
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.
Jika folder ini sudah dibuat saat mengikuti artikel backup Samba, lewati langkah ini.
mkdir -p /mnt/nfs-data/shared/backup-admin
chown namauser:namauser /mnt/nfs-data/shared/backup-admin
chmod 2770 /mnt/nfs-data/shared/backup-admin
Verifikasi:
ls -ld /mnt/nfs-data/shared/backup-admin
nano /usr/local/bin/backup-rclone.sh
Paste seluruh isi berikut:
#!/bin/bash
set -euo pipefail
umask 077
BACKUP_DIR="/mnt/nfs-data/shared/backup-admin"
DATE="$(date +%Y-%m-%d_%H%M%S)"
TMP_BACKUP="/tmp/rclone-config-${DATE}.tar.gz"
FINAL_BACKUP="${BACKUP_DIR}/rclone-config-${DATE}.tar.gz"
LOG_FILE="/var/log/rclone-backup.log"
STAGING="$(mktemp -d /tmp/backup-rclone.XXXXXX)"
mkdir -p "$BACKUP_DIR"
trap 'rm -rf "$STAGING" "$TMP_BACKUP"' EXIT
echo "=== Rclone backup started: $(date) ===" >> "$LOG_FILE"
copy_item() {
local SRC="$1"
if [ -e "$SRC" ]; then
mkdir -p "$STAGING$(dirname "$SRC")"
cp -a "$SRC" "$STAGING$SRC"
echo "Included: $SRC" >> "$LOG_FILE"
else
echo "Missing : $SRC" >> "$LOG_FILE"
fi
}
copy_item /root/.config/rclone/rclone.conf
copy_item /usr/local/bin/rclone-bisync-home-server.sh
copy_item /usr/local/bin/clean-recycle-bin.sh
copy_item /usr/local/bin/backup-rclone.sh
copy_item /etc/systemd/system/rclone-bisync.service
copy_item /etc/systemd/system/rclone-bisync.timer
copy_item /etc/systemd/system/recycle-cleanup.service
copy_item /etc/systemd/system/recycle-cleanup.timer
mkdir -p "$STAGING/backup-meta"
date > "$STAGING/backup-meta/backup-created.txt"
hostname > "$STAGING/backup-meta/hostname.txt"
timedatectl > "$STAGING/backup-meta/timedatectl.txt" 2>/dev/null || true
rclone version > "$STAGING/backup-meta/rclone-version.txt" 2>/dev/null || true
systemctl is-enabled rclone-bisync.timer recycle-cleanup.timer > "$STAGING/backup-meta/systemd-enabled.txt" 2>/dev/null || true
systemctl is-active rclone-bisync.timer recycle-cleanup.timer > "$STAGING/backup-meta/systemd-active.txt" 2>/dev/null || true
cat > "$STAGING/backup-meta/README-RESTORE-RCLONE.txt" <<'EOT'
RESTORE RCLONE - GARIS BESAR
1. Siapkan Debian 12.
2. Install paket pendukung:
apt update && apt install curl unzip -y
3. Install rclone versi terbaru:
curl https://rclone.org/install.sh | bash
4. Pastikan folder data ada:
mkdir -p /mnt/nfs-data/shared
5. Copy file backup ini ke server.
6. Extract backup ke root:
tar xzf rclone-config-YYYY-MM-DD_HHMMSS.tar.gz -C /
7. Buat folder kerja:
mkdir -p /var/lib/rclone-bisync
mkdir -p /var/log/rclone
8. Set timezone (sesuaikan dengan zona yang digunakan):
timedatectl set-timezone Asia/Makassar
9. Reload systemd:
systemctl daemon-reload
10. Aktifkan timer:
systemctl enable --now rclone-bisync.timer
systemctl enable --now recycle-cleanup.timer
11. Cek koneksi Google Drive:
rclone lsd gdrive:
12. Karena backup ini TIDAK menyertakan state bisync, jalankan resync awal:
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
CATATAN:
- Backup ini berisi token Google Drive di rclone.conf.
- Token bisa expired setelah lama tidak dipakai.
- Jika expired, jalankan rclone config untuk authorize ulang.
- Simpan file backup di tempat aman.
EOT
tar czf "$TMP_BACKUP" -C "$STAGING" .
mv "$TMP_BACKUP" "$FINAL_BACKUP"
chown namauser:namauser "$FINAL_BACKUP"
chmod 0640 "$FINAL_BACKUP"
echo "Backup saved: $FINAL_BACKUP" >> "$LOG_FILE"
echo "=== Rclone backup ended: $(date) ===" >> "$LOG_FILE"
echo "" >> "$LOG_FILE"
echo "$FINAL_BACKUP"
Catatan: Jika menggunakan Proxmox web console, paste teks panjang kadang dapat memotong baris. Verifikasi isi script di langkah berikutnya sebelum dijalankan.
chmod +x /usr/local/bin/backup-rclone.sh
nl -ba /usr/local/bin/backup-rclone.sh | head -n 40
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.
/usr/local/bin/backup-rclone.sh
Output akan menampilkan path file backup yang dihasilkan:
/mnt/nfs-data/shared/backup-admin/rclone-config-2026-06-09_223723.tar.gz
Cek file backup:
ls -lh /mnt/nfs-data/shared/backup-admin
Cek log:
tail -n 20 /var/log/rclone-backup.log
Cek isi arsip:
tar tzf "$(ls -t /mnt/nfs-data/shared/backup-admin/rclone-config-*.tar.gz | head -n 1)" | head -n 30
Arsip yang valid akan memuat setidaknya:
root/.config/rclone/rclone.conf
usr/local/bin/rclone-bisync-home-server.sh
usr/local/bin/backup-rclone.sh
etc/systemd/system/rclone-bisync.service
etc/systemd/system/rclone-bisync.timer
backup-meta/
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.
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:
apt install zip -y
Masuk ke folder backup:
cd /mnt/nfs-data/shared/backup-admin
Buat arsip zip terenkripsi (ganti NAMA_FILE dengan nama file backup yang baru dibuat):
zip -j -e NAMA_FILE.zip NAMA_FILE.tar.gz
Contoh:
zip -j -e rclone-config-2026-06-09_223723.zip rclone-config-2026-06-09_223723.tar.gz
Penjelasan flag:
| Flag | Keterangan |
|---|---|
-j | Simpan file tanpa menyertakan path direktori |
-e | Aktifkan enkripsi dengan password |
Verifikasi arsip zip:
unzip -l NAMA_FILE.zip
\\192.168.1.60\Shared\backup-admin.zip ke lokasi aman — jangan simpan di Google Drive yang sedang disinkronkan; gunakan external HDD, cloud storage dengan akun berbeda, atau perangkat laincd /mnt/nfs-data/shared/backup-admin
rm -f rclone-config-*.tar.gz
rm -f rclone-config-*.zip
Siapkan server Debian 12 baru, login sebagai root
apt update && apt install curl unzip -ycurl https://rclone.org/install.sh | bashmkdir -p /mnt/nfs-data/shared
mkdir -p /var/lib/rclone-bisync
mkdir -p /var/log/rclonetimedatectl set-timezone Asia/Makassartar xzf rclone-config-YYYY-MM-DD_HHMMSS.tar.gz -C /systemctl daemon-reloadrclone lsd gdrive:rclone bisync "/mnt/nfs-data/shared" "gdrive:Home Server" \
--workdir /var/lib/rclone-bisync \
--resync -P \
--create-empty-src-dirs \
--exclude ".recycle/**" \
--drive-acknowledge-abusesystemctl enable --now rclone-bisync.timer
systemctl enable --now recycle-cleanup.timersystemctl 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.
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:
rclone authorize "drive" "CLIENT_ID" "CLIENT_SECRET"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.rclone confige (edit existing remote) → pilih gdrive → ikuti prompt hingga bagian token, paste token baru.rclone lsd gdrive:nano /etc/systemd/system/backup-rclone.service
[Unit]
Description=Manual Backup Rclone Configuration
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-rclone.sh
nano /etc/systemd/system/backup-rclone.timer
[Unit]
Description=Weekly backup of Rclone configuration
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target
Aktifkan timer:
systemctl daemon-reload
systemctl enable --now backup-rclone.timer
Catatan: Backup otomatis tidak disertai enkripsi password secara otomatis. Enkripsi perlu dilakukan secara manual terhadap file yang dihasilkan.
| Gejala | Penyebab | Solusi |
|---|---|---|
cp: 'root/.config/rclone': No such file or directory | Script korup akibat paste via web console | Edit ulang dengan nano, pastikan fungsi copy_item ada dengan benar |
Missing di log untuk beberapa file | File yang ingin di-backup belum dibuat di server | Normal — script tetap melanjutkan; file yang ada tetap ter-backup |
| File backup tidak terlihat dari Windows | Cache Windows atau permission folder salah | Tekan F5 di File Explorer; cek owner dan mode dengan ls -ld /mnt/nfs-data/shared/backup-admin |
Setelah restore, rclone lsd gdrive: error invalid_grant | Token expired | Lakukan otorisasi ulang — lihat bagian “Penanganan Token Google Drive Expired” |
Setelah restore, bisync error cannot find prior listings | State bisync tidak disertakan dalam backup | Jalankan --resync untuk membangun state baru |
| Password zip ditolak di Windows Explorer | Windows Explorer kurang mendukung enkripsi zip | Gunakan 7-Zip untuk mengekstrak file .zip terenkripsi |
Termasuk dalam backup:
/root/.config/rclone/rclone.conf) beserta token Google Driverclone-bisync-home-server.sh)clean-recycle-bin.sh)Tidak termasuk dalam backup:
/var/lib/rclone-bisync) — dibangun ulang dengan --resync setelah restorerclone.conf memberikan akses penuh ke Google Drive| File | Lokasi |
|---|---|
| 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 |
# Setup folder backup (jika belum ada)
mkdir -p /mnt/nfs-data/shared/backup-admin
chown namauser:namauser /mnt/nfs-data/shared/backup-admin
chmod 2770 /mnt/nfs-data/shared/backup-admin
# Buat dan jadikan script executable
nano /usr/local/bin/backup-rclone.sh
chmod +x /usr/local/bin/backup-rclone.sh
# Verifikasi script
nl -ba /usr/local/bin/backup-rclone.sh | head -n 40
# Jalankan backup
/usr/local/bin/backup-rclone.sh
# Verifikasi hasil
ls -lh /mnt/nfs-data/shared/backup-admin
tail -n 20 /var/log/rclone-backup.log
tar tzf "$(ls -t /mnt/nfs-data/shared/backup-admin/rclone-config-*.tar.gz | head -n 1)" | head -n 30
# Enkripsi file backup
apt install zip -y
zip -j -e NAMA_FILE.zip NAMA_FILE.tar.gz
# Hapus file backup dari server setelah aman tersimpan
rm -f /mnt/nfs-data/shared/backup-admin/rclone-config-*.tar.gz
rm -f /mnt/nfs-data/shared/backup-admin/rclone-config-*.zip
Artikel ini disusun berdasarkan pengujian langsung pada lingkungan berikut:
Untuk keamanan, pastikan file backup selalu dienkripsi sebelum disimpan di lokasi manapun, termasuk di dalam folder share.