Diagram sinkronisasi 2 arah antara folder lokal Debian 12 dan Google Drive menggunakan rclone bisync dengan otomatisasi systemd timer

Install dan Konfigurasi rclone untuk Sinkronisasi Google Drive di Debian 12

Artikel ini merupakan lanjutan dari seri konfigurasi home server berbasis Debian 12. Setelah Samba berjalan sebagai file sharing server, langkah berikutnya adalah menghubungkan folder share tersebut ke Google Drive menggunakan rclone dengan mode sinkronisasi 2 arah (bisync).

Dengan konfigurasi ini, setiap file yang ditambahkan atau dihapus di folder lokal akan otomatis tersinkron ke Google Drive, dan sebaliknya — tanpa perlu intervensi manual. Otomatisasi dikelola oleh systemd timer yang berjalan setiap 30 menit.

Sebelum memulai, pastikan Google API Client ID sudah disiapkan. Panduan lengkapnya tersedia di artikel terpisah: Cara Membuat Google API Client ID Sendiri untuk rclone. Client ID sendiri diperlukan untuk menghindari quota error dan memastikan token OAuth tidak expired setiap 7 hari.


Prasyarat

  • Debian 12 sudah terinstall dan dapat diakses
  • Login sebagai root
  • Folder share Samba sudah ada di /mnt/nfs-data/shared
  • User namauser sudah dibuat di Linux
  • Komputer Windows dengan browser untuk proses otorisasi Google
  • Akun Google Drive sudah tersedia

Referensi Konfigurasi

ItemNilai Contoh
Folder lokal/mnt/nfs-data/shared
Folder Google DriveMy Drive > Home Server
Nama remote rclonegdrive
User pemilik foldernamauser
Workdir bisync/var/lib/rclone-bisync
Folder log/var/log/rclone
Jadwal sync otomatisSetiap 30 menit

Langkah 1 — Update Sistem dan Install Paket Pendukung


Langkah 2 — Install rclone

Install rclone versi terbaru dari sumber resmi:

Catatan: Hindari install rclone dari apt — versi di repository Debian biasanya jauh tertinggal dan fitur bisync belum stabil.

Verifikasi instalasi:

Pastikan versi yang terinstall minimal 1.66 atau lebih baru.


Langkah 3 — Siapkan Google API Client ID

Sebelum melanjutkan, pastikan Client ID dan Client Secret sudah tersedia. Keduanya didapatkan dengan membuat Google API project sendiri melalui Google Cloud Console — langkah ini penting untuk menghindari quota error dan memastikan token OAuth tidak expired setiap 7 hari.

Panduan lengkap: Cara Membuat Google API Client ID Sendiri untuk rclone

Setelah Client ID dan Client Secret tersedia, lanjutkan ke langkah berikut.


Langkah 4 — Dapatkan Token Google Drive dari Windows

Karena server Debian tidak memiliki browser, proses otorisasi dilakukan dari Windows.

4.1 Download rclone untuk Windows

  1. Buka https://rclone.org/downloads/
  2. Download rclone for Windows (AMD64)
  3. Extract ke folder, misalnya C:\rclone

4.2 Jalankan Authorize dari CMD Windows

Penting: Gunakan CMD (Command Prompt), bukan terminal Linux atau WSL.

  1. Buka CMD sebagai Administrator (klik kanan > Run as Administrator)
  2. Masuk ke folder rclone:
    cd C:\rclone\rclone-vX.XX.X-windows-amd64
  3. Jalankan perintah berikut (ganti CLIENT_ID dan CLIENT_SECRET dengan nilai yang disimpan di Notepad):
    rclone authorize "drive" "CLIENT_ID" "CLIENT_SECRET"

4.3 Login di Browser

  1. Browser akan terbuka otomatis
  2. Login dengan akun Google Drive yang sama dengan test user yang didaftarkan saat membuat Google API Client ID
  3. Saat muncul peringatan Google hasn’t verified this app, klik AdvancedGo to rclone-gdrive (unsafe)
  4. Klik Allow / Continue
  5. Browser akan menampilkan pesan Success

4.4 Copy Token

Kembali ke jendela CMD. Token akan muncul dalam format:

{"access_token":"ya29.xxxxx...","token_type":"Bearer","refresh_token":"1//xxxxx...","expiry":"..."}

Salin seluruh baris token tersebut ke Notepad.


Langkah 5 — Konfigurasi rclone di Server

Kembali ke terminal Debian.

Ikuti menu interaktif berikut:

PromptJawaban
n/s/q>n
name>gdrive
Storage>drive
client_id>paste Client ID dari Notepad
client_secret>paste Client Secret dari Notepad
scope>1
root_folder_id>(kosong, tekan Enter)
service_account_file>(kosong, tekan Enter)
Edit advanced config? y/n>n
Use auto config? y/n>n
Enter verification code>paste token dari Notepad
Configure as Shared Drive? y/n>n
Keep this remote? y/e/d>y
e/n/d/r/c/s/q>q

Verifikasi koneksi berhasil:

Output harus menampilkan daftar folder di Google Drive.


Langkah 6 — Persiapan Folder

6.1 Buat Folder Tujuan di Google Drive

Buka Google Drive di browser, lalu buat folder baru di My Drive dengan nama:

6.2 Buat Folder Kerja di Server

Penting: Workdir bisync harus berada di folder permanen seperti /var/lib/rclone-bisync. Jangan gunakan /tmp karena dapat dibersihkan saat reboot dan menyebabkan state bisync hilang.


Langkah 7 — Upload Awal ke Google Drive

Jika folder Google Drive masih kosong, upload terlebih dahulu isi folder lokal:

Tunggu hingga proses selesai sebelum melanjutkan ke langkah berikutnya.


Langkah 8 — Inisialisasi Bisync

Jalankan inisialisasi sinkronisasi 2 arah:

Penjelasan flag:

FlagKeterangan
--workdirLokasi penyimpanan state bisync
--resyncInisialisasi pertama; hanya dijalankan sekali atau saat recovery
-PTampilkan progress
--create-empty-src-dirsFolder kosong ikut disinkronkan
--exclude ".recycle/**"Folder recycle bin Samba tidak ikut disinkronkan
--drive-acknowledge-abuseTetap proses file yang ditandai malware oleh Google

Tentang --drive-acknowledge-abuse: Flag ini diperlukan jika ada file di Google Drive yang ditandai sebagai berbahaya oleh Google (misalnya file .iso atau aktivator). Tanpa flag ini, bisync akan abort dan state bisa rusak. Pertimbangkan risiko keamanan sebelum menggunakannya.

Verifikasi state bisync berhasil dibuat:

Harus muncul path1.lst dan path2.lst tanpa suffix -err.


Langkah 9 — Buat Script Sinkronisasi

Isi dengan:

Jadikan executable:

Penjelasan tiga baris terakhir:

Setelah sinkronisasi selesai, script otomatis merapikan kepemilikan dan permission file. Ini diperlukan karena rclone berjalan sebagai root, sehingga file baru yang masuk dari Google Drive bisa memiliki owner root — yang mengakibatkan Windows client tidak bisa menulis atau mengubah file tersebut melalui SMB.

PerintahEfek
chown -R namauser:namauserSemua file/folder dimiliki namauser
chmod 2770 pada direktoriPermission rwxrws--- dengan setgid aktif
chmod 0770 pada filePermission rwxrwx---; bit execute memungkinkan file .exe dijalankan dari share

Jika dukungan eksekusi file .exe tidak diperlukan, ganti 0770 menjadi 0660.

Tes jalankan script secara manual:

Cek log:

Pastikan ada baris Bisync successful tanpa error fatal.


Langkah 10 — Otomatisasi dengan systemd Timer

10.1 Buat Service

10.2 Buat Timer

nano /etc/systemd/system/rclone-bisync.timer

Penjelasan jadwal:

DirektifKeterangan
OnBootSec=1minSetelah boot, tunggu 1 menit sebelum sync pertama
OnUnitActiveSec=30minSetelah sync terakhir selesai, tunggu 30 menit sebelum sync berikutnya

Interval 30 menit dipilih untuk menghindari beban query berlebih ke Google Drive API. Semakin sering sync, semakin tinggi risiko kena quota — terutama untuk folder dengan jumlah file yang besar.

10.3 Aktifkan Timer

Verifikasi:

Output harus menampilkan jadwal sync berikutnya dan status active.


Ringkasan Perintah


Referensi File

FileLokasi
Konfigurasi rclone/root/.config/rclone/rclone.conf
Script sync/usr/local/bin/rclone-bisync-home-server.sh
Service systemd/etc/systemd/system/rclone-bisync.service
Timer systemd/etc/systemd/system/rclone-bisync.timer
Log sync/var/log/rclone/bisync-home-server.log
State bisync/var/lib/rclone-bisync

Catatan Penting

File rclone.conf di /root/.config/rclone/rclone.conf berisi data sensitif berupa token akses Google Drive. File ini tidak boleh dibagikan atau di-commit ke version control. Backup file ini dan simpan di tempat aman — prosedurnya dibahas di artikel backup terpisah.


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
  • Folder lokal: /mnt/nfs-data/shared (folder share Samba)

Leave a Reply

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