{"id":3430,"date":"2026-07-23T14:08:10","date_gmt":"2026-07-23T14:08:10","guid":{"rendered":"https:\/\/rri.my.id\/?p=3430"},"modified":"2026-07-23T14:08:35","modified_gmt":"2026-07-23T14:08:35","slug":"backup-manual-konfigurasi-rclone-debian-12","status":"publish","type":"post","link":"https:\/\/rri.my.id\/index.php\/2026\/07\/23\/backup-manual-konfigurasi-rclone-debian-12\/","title":{"rendered":"Backup Manual Konfigurasi rclone di Debian 12"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">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 \u2014 mencakup file <code>rclone.conf<\/code> yang berisi token Google Drive, script sinkronisasi, serta unit systemd yang mengelola otomatisasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 <code>.tar.gz<\/code> berisi semua file penting beserta metadata restore.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Catatan keamanan:<\/strong> File <code>rclone.conf<\/code> berisi <strong>token akses Google Drive<\/strong> yang memberikan akses penuh ke Google Drive. Perlakukan file backup ini seperti password \u2014 selalu enkripsi sebelum disimpan, dan jangan simpan di Google Drive yang sedang disinkronkan.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Prasyarat<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rclone sudah terinstall dan dikonfigurasi (lihat <a href=\"https:\/\/rri.my.id\/index.php\/2026\/07\/21\/install-konfigurasi-rclone-google-drive-debian-12\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install dan Konfigurasi rclone untuk Sinkronisasi Google Drive di Debian 12<\/a>)<\/li>\n\n\n\n<li>Folder share sudah ada di <code>\/mnt\/nfs-data\/shared<\/code><\/li>\n\n\n\n<li>Script sinkronisasi sudah ada di <code>\/usr\/local\/bin\/rclone-bisync-home-server.sh<\/code><\/li>\n\n\n\n<li>systemd timer rclone sudah aktif<\/li>\n\n\n\n<li>Login sebagai <code>root<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Referensi Konfigurasi<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Item<\/th><th>Nilai Contoh<\/th><\/tr><\/thead><tbody><tr><td>Folder backup<\/td><td><code>\/mnt\/nfs-data\/shared\/backup-admin<\/code><\/td><\/tr><tr><td>User pemilik backup<\/td><td><code>namauser<\/code><\/td><\/tr><tr><td>Format nama file<\/td><td><code>rclone-config-YYYY-MM-DD_HHMMSS.tar.gz<\/code><\/td><\/tr><tr><td>Lokasi log backup<\/td><td><code>\/var\/log\/rclone-backup.log<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Catatan: State Bisync Tidak Disertakan dalam Backup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Backup ini sengaja <strong>tidak<\/strong> menyertakan folder <code>\/var\/lib\/rclone-bisync<\/code> yang berisi state sinkronisasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">State bisync adalah &#8220;snapshot&#8221; kondisi sinkronisasi pada waktu tertentu. Jika di-restore beberapa waktu kemudian, kondisi lokal dan cloud sudah berubah \u2014 menggunakan state lama pada kondisi baru dapat menyebabkan konflik sinkronisasi. Lebih aman membangun state baru dengan menjalankan <code>--resync<\/code> setelah restore.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 1 \u2014 Pastikan Folder Backup Ada<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jika folder ini sudah dibuat saat mengikuti artikel backup Samba, lewati langkah ini.<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-234c56883a62103040aab4fc659926db\"><code>mkdir -p \/mnt\/nfs-data\/shared\/backup-admin\nchown <span style=\"color: #ff0000;\" class=\"stk-highlight\">namauser<\/span>:<span style=\"color: #ff0000;\" class=\"stk-highlight\">namauser <\/span>\/mnt\/nfs-data\/shared\/backup-admin\nchmod 2770 \/mnt\/nfs-data\/shared\/backup-admin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verifikasi:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-e2459fb53b669d0bd7130da665fa6406\"><code>ls -ld \/mnt\/nfs-data\/shared\/backup-admin<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 2 \u2014 Buat Script Backup<\/h2>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-6fa5160b9e38eea2a51929202f458e30\"><code>nano \/usr\/local\/bin\/backup-rclone.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Paste seluruh isi berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-54fb09fb7a36fb8d17f27c9f9124b6ae\"><code>#!\/bin\/bash\nset -euo pipefail\numask 077\n\nBACKUP_DIR=\"\/mnt\/nfs-data\/shared\/backup-admin\"\nDATE=\"$(date +%Y-%m-%d_%H%M%S)\"\nTMP_BACKUP=\"\/tmp\/rclone-config-${DATE}.tar.gz\"\nFINAL_BACKUP=\"${BACKUP_DIR}\/rclone-config-${DATE}.tar.gz\"\nLOG_FILE=\"\/var\/log\/rclone-backup.log\"\nSTAGING=\"$(mktemp -d \/tmp\/backup-rclone.XXXXXX)\"\n\nmkdir -p \"$BACKUP_DIR\"\ntrap 'rm -rf \"$STAGING\" \"$TMP_BACKUP\"' EXIT\n\necho \"=== Rclone backup started: $(date) ===\" >> \"$LOG_FILE\"\n\ncopy_item() {\n  local SRC=\"$1\"\n  if &#91; -e \"$SRC\" ]; then\n    mkdir -p \"$STAGING$(dirname \"$SRC\")\"\n    cp -a \"$SRC\" \"$STAGING$SRC\"\n    echo \"Included: $SRC\" >> \"$LOG_FILE\"\n  else\n    echo \"Missing : $SRC\" >> \"$LOG_FILE\"\n  fi\n}\n\ncopy_item \/root\/.config\/rclone\/rclone.conf\ncopy_item \/usr\/local\/bin\/rclone-bisync-home-server.sh\ncopy_item \/usr\/local\/bin\/clean-recycle-bin.sh\ncopy_item \/usr\/local\/bin\/backup-rclone.sh\ncopy_item \/etc\/systemd\/system\/rclone-bisync.service\ncopy_item \/etc\/systemd\/system\/rclone-bisync.timer\ncopy_item \/etc\/systemd\/system\/recycle-cleanup.service\ncopy_item \/etc\/systemd\/system\/recycle-cleanup.timer\n\nmkdir -p \"$STAGING\/backup-meta\"\n\ndate > \"$STAGING\/backup-meta\/backup-created.txt\"\nhostname > \"$STAGING\/backup-meta\/hostname.txt\"\ntimedatectl > \"$STAGING\/backup-meta\/timedatectl.txt\" 2>\/dev\/null || true\nrclone version > \"$STAGING\/backup-meta\/rclone-version.txt\" 2>\/dev\/null || true\nsystemctl is-enabled rclone-bisync.timer recycle-cleanup.timer > \"$STAGING\/backup-meta\/systemd-enabled.txt\" 2>\/dev\/null || true\nsystemctl is-active rclone-bisync.timer recycle-cleanup.timer > \"$STAGING\/backup-meta\/systemd-active.txt\" 2>\/dev\/null || true\n\ncat > \"$STAGING\/backup-meta\/README-RESTORE-RCLONE.txt\" &lt;&lt;'EOT'\nRESTORE RCLONE - GARIS BESAR\n\n1. Siapkan Debian 12.\n\n2. Install paket pendukung:\n   apt update &amp;&amp; apt install curl unzip -y\n\n3. Install rclone versi terbaru:\n   curl https:\/\/rclone.org\/install.sh | bash\n\n4. Pastikan folder data ada:\n   mkdir -p \/mnt\/nfs-data\/shared\n\n5. Copy file backup ini ke server.\n\n6. Extract backup ke root:\n   tar xzf rclone-config-YYYY-MM-DD_HHMMSS.tar.gz -C \/\n\n7. Buat folder kerja:\n   mkdir -p \/var\/lib\/rclone-bisync\n   mkdir -p \/var\/log\/rclone\n\n8. Set timezone (sesuaikan dengan zona yang digunakan):\n   timedatectl set-timezone Asia\/Makassar\n\n9. Reload systemd:\n   systemctl daemon-reload\n\n10. Aktifkan timer:\n    systemctl enable --now rclone-bisync.timer\n    systemctl enable --now recycle-cleanup.timer\n\n11. Cek koneksi Google Drive:\n    rclone lsd gdrive:\n\n12. Karena backup ini TIDAK menyertakan state bisync, jalankan resync awal:\n    rclone bisync \"\/mnt\/nfs-data\/shared\" \"gdrive:Home Server\" \\\n      --workdir \/var\/lib\/rclone-bisync \\\n      --resync -P \\\n      --create-empty-src-dirs \\\n      --exclude \".recycle\/**\" \\\n      --drive-acknowledge-abuse\n\nCATATAN:\n- Backup ini berisi token Google Drive di rclone.conf.\n- Token bisa expired setelah lama tidak dipakai.\n- Jika expired, jalankan rclone config untuk authorize ulang.\n- Simpan file backup di tempat aman.\nEOT\n\ntar czf \"$TMP_BACKUP\" -C \"$STAGING\" .\nmv \"$TMP_BACKUP\" \"$FINAL_BACKUP\"\nchown <span style=\"color: #ff0000;\" class=\"stk-highlight\">namauser<\/span>:<span style=\"color: #ff0000;\" class=\"stk-highlight\">namauser <\/span>\"$FINAL_BACKUP\"\nchmod 0640 \"$FINAL_BACKUP\"\n\necho \"Backup saved: $FINAL_BACKUP\" >> \"$LOG_FILE\"\necho \"=== Rclone backup ended: $(date) ===\" >> \"$LOG_FILE\"\necho \"\" >> \"$LOG_FILE\"\n\necho \"$FINAL_BACKUP\"<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Catatan:<\/strong> Jika menggunakan Proxmox web console, paste teks panjang kadang dapat memotong baris. Verifikasi isi script di langkah berikutnya sebelum dijalankan.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 3 \u2014 Jadikan Script Executable<\/h2>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-5c27f364ac40c2ac3fb2908a0fc96daf\"><code>chmod +x \/usr\/local\/bin\/backup-rclone.sh<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 4 \u2014 Verifikasi Isi Script<\/h2>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-2dbf96e734cbfeed89535553fa97a289\"><code>nl -ba \/usr\/local\/bin\/backup-rclone.sh | head -n 40<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pastikan baris pertama adalah <code>#!\/bin\/bash<\/code> dan fungsi <code>copy_item<\/code> beserta baris-baris <code>copy_item \/root\/.config\/rclone\/rclone.conf<\/code> dan seterusnya ada dengan benar. Jika ada karakter aneh atau baris terpotong, edit ulang dengan <code>nano<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 5 \u2014 Jalankan Backup<\/h2>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-32c90ae1f42a28d405eac0b58f603ceb\"><code>\/usr\/local\/bin\/backup-rclone.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output akan menampilkan path file backup yang dihasilkan:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-d47bce0bc7672228c5f5dc8099a01283\"><code>\/mnt\/nfs-data\/shared\/backup-admin\/rclone-config-2026-06-09_223723.tar.gz<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 6 \u2014 Verifikasi Hasil Backup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cek file backup:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-b06565116d4961040fa819f3eee72479\"><code>ls -lh \/mnt\/nfs-data\/shared\/backup-admin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cek log:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-4e37f5797e8d635603dfc8d0e4ff0fa6\"><code>tail -n 20 \/var\/log\/rclone-backup.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cek isi arsip:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-1ad23bd407db0c870526fd7de04af295\"><code>tar tzf \"$(ls -t \/mnt\/nfs-data\/shared\/backup-admin\/rclone-config-*.tar.gz | head -n 1)\" | head -n 30<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Arsip yang valid akan memuat setidaknya:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-45fb70b58836df0f7acfd61294f55332\"><code>root\/.config\/rclone\/rclone.conf\nusr\/local\/bin\/rclone-bisync-home-server.sh\nusr\/local\/bin\/backup-rclone.sh\netc\/systemd\/system\/rclone-bisync.service\netc\/systemd\/system\/rclone-bisync.timer\nbackup-meta\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">File yang belum dibuat (seperti <code>clean-recycle-bin.sh<\/code>) akan tercatat sebagai <code>Missing<\/code> di log \u2014 ini normal, script tetap melanjutkan backup untuk file yang ada.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 7 \u2014 Enkripsi File Backup dengan Password<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">File backup rclone lebih sensitif dibanding backup Samba karena berisi token akses Google Drive. Enkripsi wajib dilakukan sebelum file disimpan atau dipindahkan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install <code>zip<\/code> jika belum tersedia:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-60bd2b2beb323e6babe9076f07d9505d\"><code>apt install zip -y<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Masuk ke folder backup:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-9a4f5ccd8aaef24fa0c42d6c88ead7b1\"><code>cd \/mnt\/nfs-data\/shared\/backup-admin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buat arsip zip terenkripsi (ganti <code>NAMA_FILE<\/code> dengan nama file backup yang baru dibuat):<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-e54ae125aa43ecc3b7dd46ba149300de\"><code>zip -j -e NAMA_FILE.zip NAMA_FILE.tar.gz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-d9be73be1637cd619cc7ef2791f6545d\"><code>zip -j -e rclone-config-2026-06-09_223723.zip rclone-config-2026-06-09_223723.tar.gz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Penjelasan flag:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Flag<\/th><th>Keterangan<\/th><\/tr><\/thead><tbody><tr><td><code>-j<\/code><\/td><td>Simpan file tanpa menyertakan path direktori<\/td><\/tr><tr><td><code>-e<\/code><\/td><td>Aktifkan enkripsi dengan password<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Verifikasi arsip zip:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-38ff78273d9d61cbc3291c26032ffcd5\"><code>unzip -l NAMA_FILE.zip<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Langkah 8 \u2014 Pindahkan Backup dari Windows<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Buka File Explorer di Windows<\/li>\n\n\n\n<li>Akses folder backup:<br><code class=\"language-text\">\\\\192.168.1.60\\Shared\\backup-admin<\/code><\/li>\n\n\n\n<li>Salin file <code>.zip<\/code> ke lokasi aman \u2014 <strong>jangan<\/strong> simpan di Google Drive yang sedang disinkronkan; gunakan external HDD, cloud storage dengan akun berbeda, atau perangkat lain<\/li>\n\n\n\n<li>Setelah file tersimpan dengan aman, hapus dari server:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-a9c0ad56f3613e5e4bf603f6bf0f4138\"><code>cd \/mnt\/nfs-data\/shared\/backup-admin\nrm -f rclone-config-*.tar.gz\nrm -f rclone-config-*.zip<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Restore Backup<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Langkah Restore<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><p>Siapkan server Debian 12 baru, login sebagai <code>root<\/code><\/p><\/li>\n\n\n\n<li>Install paket pendukung:<br><code>apt update &amp;&amp; apt install curl unzip -y<\/code><\/li>\n\n\n\n<li>Install rclone:<br><code class=\"language-bash\">curl https:\/\/rclone.org\/install.sh | bash<\/code><\/li>\n\n\n\n<li>Buat folder yang diperlukan:<br><code class=\"language-bash\">mkdir -p \/mnt\/nfs-data\/shared<br>mkdir -p \/var\/lib\/rclone-bisync<br>mkdir -p \/var\/log\/rclone<\/code><\/li>\n\n\n\n<li>Set timezone (sesuaikan):<br><code class=\"language-bash\">timedatectl set-timezone Asia\/Makassar<\/code><\/li>\n\n\n\n<li>Salin file backup ke server (via SCP, SMB, USB, atau metode lain)<\/li>\n\n\n\n<li>Jika file backup terenkripsi, ekstrak dulu:<br><span style=\"font-family: monospace;\">unzip rclone-config-YYYY-MM-DD_HHMMSS.zip<\/span><\/li>\n\n\n\n<li>Ekstrak backup ke root filesystem:<br><code class=\"language-bash\">tar xzf rclone-config-YYYY-MM-DD_HHMMSS.tar.gz -C \/<\/code><\/li>\n\n\n\n<li>Reload systemd:<br><code class=\"language-bash\">systemctl daemon-reload<\/code><\/li>\n\n\n\n<li>Tes koneksi Google Drive:<br><code class=\"language-bash\">rclone lsd gdrive:<\/code><br>Jika muncul error token expired, lihat bagian berikutnya.<\/li>\n\n\n\n<li>Jalankan resync awal untuk membangun state bisync baru:<br><code class=\"language-bash\">rclone bisync \"\/mnt\/nfs-data\/shared\" \"gdrive:Home Server\" \\<br> --workdir \/var\/lib\/rclone-bisync \\<br> --resync -P \\<br> --create-empty-src-dirs \\<br> --exclude \".recycle\/**\" \\<br> --drive-acknowledge-abuse<\/code><\/li>\n\n\n\n<li>Aktifkan timer:<br><code><span style=\"font-family: monospace;\">systemctl enable --now rclone-bisync.timer<\/span><br><\/code><code class=\"language-bash\">systemctl enable --now recycle-cleanup.timer<\/code><\/li>\n\n\n\n<li>Verifikasi timer aktif:<br><code class=\"language-bash\">systemctl list-timers | grep -E \"rclone-bisync|recycle-cleanup\"<\/code><\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Catatan:<\/strong> Pastikan Samba juga sudah berjalan setelah restore. Prosedur restore Samba dibahas di artikel <a href=\"https:\/\/rri.my.id\/index.php\/2026\/07\/17\/backup-manual-konfigurasi-samba-debian-12\/\" data-type=\"link\" data-id=\"https:\/\/rri.my.id\/index.php\/2026\/07\/17\/backup-manual-konfigurasi-samba-debian-12\/\" target=\"_blank\" rel=\"noreferrer noopener\">Backup Manual Konfigurasi Samba di Debian 12<\/a>.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Penanganan Token Google Drive Expired<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Token di <code>rclone.conf<\/code> dapat expired setelah lama tidak digunakan, misalnya saat restore dari backup lama.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gejala \u2014 saat menjalankan <code>rclone lsd gdrive:<\/code> muncul:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>oauth2: cannot fetch token\ninvalid_grant<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cara otorisasi ulang:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Di Windows (CMD Administrator), jalankan:<br><code class=\"language-cmd\">rclone authorize \"drive\" \"CLIENT_ID\" \"CLIENT_SECRET\"<\/code><br>Ganti <code>CLIENT_ID<\/code> dan <code>CLIENT_SECRET<\/code> dengan nilai yang disimpan saat membuat Google API Client ID. Panduan lengkap tersedia di artikel <a href=\"https:\/\/rri.my.id\/index.php\/2026\/07\/18\/cara-membuat-google-api-client-id-rclone\/\" data-type=\"link\" data-id=\"https:\/\/rri.my.id\/index.php\/2026\/07\/18\/cara-membuat-google-api-client-id-rclone\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cara Membuat Google API Client ID Sendiri untuk rclone<\/a>.<\/li>\n\n\n\n<li>Login di browser, salin token yang muncul di CMD.<\/li>\n\n\n\n<li>Di server, jalankan:<br><code class=\"language-bash\">rclone config<\/code><br>Pilih <code>e<\/code> (edit existing remote) \u2192 pilih <code>gdrive<\/code> \u2192 ikuti prompt hingga bagian token, paste token baru.<\/li>\n\n\n\n<li>Verifikasi:<br><code class=\"language-bash\">rclone lsd gdrive:<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Backup Berkala dengan systemd Timer (Opsional)<\/h2>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-dc3141f904760e453525b13e07156741\"><code>nano \/etc\/systemd\/system\/backup-rclone.service<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-a917c21865788a7745b0c0d78827177e\"><code>&#91;Unit]\nDescription=Manual Backup Rclone Configuration\n\n&#91;Service]\nType=oneshot\nExecStart=\/usr\/local\/bin\/backup-rclone.sh<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-fe1185926d2d4182b9a11ed8af2f4907\"><code>nano \/etc\/systemd\/system\/backup-rclone.timer<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-1ea7fa460c1950ba48f34e660c792534\"><code>&#91;Unit]\nDescription=Weekly backup of Rclone configuration\n\n&#91;Timer]\nOnCalendar=weekly\nPersistent=true\n\n&#91;Install]\nWantedBy=timers.target<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aktifkan timer:<\/p>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-efa1b77949d5809b71fc4425e31bd0fc\"><code>systemctl daemon-reload\nsystemctl enable --now backup-rclone.timer<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Catatan:<\/strong> Backup otomatis tidak disertai enkripsi password secara otomatis. Enkripsi perlu dilakukan secara manual terhadap file yang dihasilkan.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Gejala<\/th><th>Penyebab<\/th><th>Solusi<\/th><\/tr><\/thead><tbody><tr><td><code>cp: 'root\/.config\/rclone': No such file or directory<\/code><\/td><td>Script korup akibat paste via web console<\/td><td>Edit ulang dengan <code>nano<\/code>, pastikan fungsi <code>copy_item<\/code> ada dengan benar<\/td><\/tr><tr><td><code>Missing<\/code> di log untuk beberapa file<\/td><td>File yang ingin di-backup belum dibuat di server<\/td><td>Normal \u2014 script tetap melanjutkan; file yang ada tetap ter-backup<\/td><\/tr><tr><td>File backup tidak terlihat dari Windows<\/td><td>Cache Windows atau permission folder salah<\/td><td>Tekan F5 di File Explorer; cek owner dan mode dengan <code>ls -ld \/mnt\/nfs-data\/shared\/backup-admin<\/code><\/td><\/tr><tr><td>Setelah restore, <code>rclone lsd gdrive:<\/code> error <code>invalid_grant<\/code><\/td><td>Token expired<\/td><td>Lakukan otorisasi ulang \u2014 lihat bagian &#8220;Penanganan Token Google Drive Expired&#8221;<\/td><\/tr><tr><td>Setelah restore, bisync error <code>cannot find prior listings<\/code><\/td><td>State bisync tidak disertakan dalam backup<\/td><td>Jalankan <code>--resync<\/code> untuk membangun state baru<\/td><\/tr><tr><td>Password zip ditolak di Windows Explorer<\/td><td>Windows Explorer kurang mendukung enkripsi zip<\/td><td>Gunakan 7-Zip untuk mengekstrak file <code>.zip<\/code> terenkripsi<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Cakupan Backup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Termasuk dalam backup:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Konfigurasi rclone (<code>\/root\/.config\/rclone\/rclone.conf<\/code>) beserta token Google Drive<\/li>\n\n\n\n<li>Script sinkronisasi (<code>rclone-bisync-home-server.sh<\/code>)<\/li>\n\n\n\n<li>Script pembersih recycle bin (<code>clean-recycle-bin.sh<\/code>)<\/li>\n\n\n\n<li>Script backup rclone itu sendiri<\/li>\n\n\n\n<li>Unit systemd untuk sync dan cleanup (service + timer)<\/li>\n\n\n\n<li>Metadata: hostname, timezone, versi rclone, status timer<\/li>\n\n\n\n<li>README restore singkat<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tidak termasuk dalam backup:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>State bisync (<code>\/var\/lib\/rclone-bisync<\/code>) \u2014 dibangun ulang dengan <code>--resync<\/code> setelah restore<\/li>\n\n\n\n<li>File data di dalam folder share<\/li>\n\n\n\n<li>Konfigurasi Samba \u2014 dibahas di artikel <a href=\"https:\/\/rri.my.id\/index.php\/2026\/07\/17\/backup-manual-konfigurasi-samba-debian-12\/\" data-type=\"link\" data-id=\"https:\/\/rri.my.id\/index.php\/2026\/07\/17\/backup-manual-konfigurasi-samba-debian-12\/\" target=\"_blank\" rel=\"noreferrer noopener\">Backup Manual Konfigurasi Samba di Debian 12<\/a><\/li>\n\n\n\n<li>Log file lama<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Catatan Keamanan<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Token Google Drive di <code>rclone.conf<\/code> memberikan akses <strong>penuh<\/strong> ke Google Drive<\/li>\n\n\n\n<li>Selalu enkripsi file backup sebelum disimpan di manapun<\/li>\n\n\n\n<li>Jangan simpan backup di Google Drive yang sedang disinkronkan \u2014 jika akun bermasalah, backup ikut tidak bisa diakses<\/li>\n\n\n\n<li>Hapus file backup dari folder share segera setelah dipindahkan ke lokasi aman<\/li>\n\n\n\n<li>Simpan <strong>Client ID dan Client Secret<\/strong> Google API di tempat terpisah yang aman \u2014 dibutuhkan untuk otorisasi ulang jika token expired<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Referensi File<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>File<\/th><th>Lokasi<\/th><\/tr><\/thead><tbody><tr><td>Script backup<\/td><td><code>\/usr\/local\/bin\/backup-rclone.sh<\/code><\/td><\/tr><tr><td>Log backup<\/td><td><code>\/var\/log\/rclone-backup.log<\/code><\/td><\/tr><tr><td>Folder backup sementara<\/td><td><code>\/mnt\/nfs-data\/shared\/backup-admin<\/code><\/td><\/tr><tr><td>Konfigurasi rclone<\/td><td><code>\/root\/.config\/rclone\/rclone.conf<\/code><\/td><\/tr><tr><td>Script sync<\/td><td><code>\/usr\/local\/bin\/rclone-bisync-home-server.sh<\/code><\/td><\/tr><tr><td>Script cleanup recycle bin<\/td><td><code>\/usr\/local\/bin\/clean-recycle-bin.sh<\/code><\/td><\/tr><tr><td>Service sync<\/td><td><code>\/etc\/systemd\/system\/rclone-bisync.service<\/code><\/td><\/tr><tr><td>Timer sync<\/td><td><code>\/etc\/systemd\/system\/rclone-bisync.timer<\/code><\/td><\/tr><tr><td>Service cleanup<\/td><td><code>\/etc\/systemd\/system\/recycle-cleanup.service<\/code><\/td><\/tr><tr><td>Timer cleanup<\/td><td><code>\/etc\/systemd\/system\/recycle-cleanup.timer<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ringkasan Perintah<\/h2>\n\n\n\n<pre class=\"wp-block-code has-palette-color-6-color has-palette-color-3-background-color has-text-color has-background has-link-color wp-elements-9958813933d9751d12fac8ba3b852a36\"><code># Setup folder backup (jika belum ada)\nmkdir -p \/mnt\/nfs-data\/shared\/backup-admin\nchown <span style=\"color: #ff0000;\" class=\"stk-highlight\">namauser<\/span>:<span style=\"color: #ff0000;\" class=\"stk-highlight\">namauser <\/span>\/mnt\/nfs-data\/shared\/backup-admin\nchmod 2770 \/mnt\/nfs-data\/shared\/backup-admin\n\n# Buat dan jadikan script executable\nnano \/usr\/local\/bin\/backup-rclone.sh\nchmod +x \/usr\/local\/bin\/backup-rclone.sh\n\n# Verifikasi script\nnl -ba \/usr\/local\/bin\/backup-rclone.sh | head -n 40\n\n# Jalankan backup\n\/usr\/local\/bin\/backup-rclone.sh\n\n# Verifikasi hasil\nls -lh \/mnt\/nfs-data\/shared\/backup-admin\ntail -n 20 \/var\/log\/rclone-backup.log\ntar tzf \"$(ls -t \/mnt\/nfs-data\/shared\/backup-admin\/rclone-config-*.tar.gz | head -n 1)\" | head -n 30\n\n# Enkripsi file backup\napt install zip -y\nzip -j -e NAMA_FILE.zip NAMA_FILE.tar.gz\n\n# Hapus file backup dari server setelah aman tersimpan\nrm -f \/mnt\/nfs-data\/shared\/backup-admin\/rclone-config-*.tar.gz\nrm -f \/mnt\/nfs-data\/shared\/backup-admin\/rclone-config-*.zip<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Referensi<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/rclone.org\/docs\/\">rclone Official Documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/rclone.org\/drive\/\">rclone Google Drive Backend<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developers.google.com\/identity\/protocols\/oauth2#expiration\">Google OAuth 2.0 \u2014 Token Expiration<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.freedesktop.org\/software\/systemd\/man\/systemd.timer.html\">systemd Timer Documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/infozip.sourceforge.net\/mans\/zip.html\">Info-ZIP Manual<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Catatan Penutup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Artikel ini disusun berdasarkan pengujian langsung pada lingkungan berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sistem Operasi:<\/strong> Debian 12 (Bookworm)<\/li>\n\n\n\n<li><strong>rclone:<\/strong> versi 1.66+<\/li>\n\n\n\n<li><strong>Google Drive:<\/strong> akun personal<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk keamanan, pastikan file backup selalu dienkripsi sebelum disimpan di lokasi manapun, termasuk di dalam folder share.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 \u2014 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 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3433,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[84,46],"tags":[82,83,41,74,88,86,89,79,52,94],"class_list":["post-3430","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-storage","category-homelab","tag-backup","tag-bash","tag-debian","tag-debian-12","tag-google-drive","tag-oauth","tag-rclone","tag-restore","tag-systemd","tag-token"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/posts\/3430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/comments?post=3430"}],"version-history":[{"count":4,"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/posts\/3430\/revisions"}],"predecessor-version":[{"id":3435,"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/posts\/3430\/revisions\/3435"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/media\/3433"}],"wp:attachment":[{"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/media?parent=3430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/categories?post=3430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rri.my.id\/index.php\/wp-json\/wp\/v2\/tags?post=3430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}