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

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.
root/mnt/nfs-data/sharednamauser sudah dibuat di Linux| Item | Nilai Contoh |
|---|---|
| Folder lokal | /mnt/nfs-data/shared |
| Folder Google Drive | My Drive > Home Server |
| Nama remote rclone | gdrive |
| User pemilik folder | namauser |
| Workdir bisync | /var/lib/rclone-bisync |
| Folder log | /var/log/rclone |
| Jadwal sync otomatis | Setiap 30 menit |
apt update && apt upgrade -y
apt install curl unzip -y
Install rclone versi terbaru dari sumber resmi:
curl https://rclone.org/install.sh | bash
Catatan: Hindari install rclone dari
apt— versi di repository Debian biasanya jauh tertinggal dan fiturbisyncbelum stabil.
Verifikasi instalasi:
rclone version
Pastikan versi yang terinstall minimal 1.66 atau lebih baru.
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.
Karena server Debian tidak memiliki browser, proses otorisasi dilakukan dari Windows.
https://rclone.org/downloads/C:\rclonePenting: Gunakan CMD (Command Prompt), bukan terminal Linux atau WSL.
cd C:\rclone\rclone-vX.XX.X-windows-amd64CLIENT_ID dan CLIENT_SECRET dengan nilai yang disimpan di Notepad):rclone authorize "drive" "CLIENT_ID" "CLIENT_SECRET"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.
Kembali ke terminal Debian.
rclone config
Ikuti menu interaktif berikut:
| Prompt | Jawaban |
|---|---|
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:
rclone lsd gdrive:
Output harus menampilkan daftar folder di Google Drive.
Buka Google Drive di browser, lalu buat folder baru di My Drive dengan nama:
Home Server
mkdir -p /var/lib/rclone-bisync
mkdir -p /var/log/rclone
Penting: Workdir bisync harus berada di folder permanen seperti
/var/lib/rclone-bisync. Jangan gunakan/tmpkarena dapat dibersihkan saat reboot dan menyebabkan state bisync hilang.
Jika folder Google Drive masih kosong, upload terlebih dahulu isi folder lokal:
rclone copy /mnt/nfs-data/shared "gdrive:Home Server" -P --create-empty-src-dirs
Tunggu hingga proses selesai sebelum melanjutkan ke langkah berikutnya.
Jalankan inisialisasi sinkronisasi 2 arah:
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
Penjelasan flag:
| Flag | Keterangan |
|---|---|
--workdir | Lokasi penyimpanan state bisync |
--resync | Inisialisasi pertama; hanya dijalankan sekali atau saat recovery |
-P | Tampilkan progress |
--create-empty-src-dirs | Folder kosong ikut disinkronkan |
--exclude ".recycle/**" | Folder recycle bin Samba tidak ikut disinkronkan |
--drive-acknowledge-abuse | Tetap 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.isoatau aktivator). Tanpa flag ini, bisync akan abort dan state bisa rusak. Pertimbangkan risiko keamanan sebelum menggunakannya.
Verifikasi state bisync berhasil dibuat:
find /var/lib/rclone-bisync -maxdepth 1 -type f | sort
Harus muncul path1.lst dan path2.lst tanpa suffix -err.
nano /usr/local/bin/rclone-bisync-home-server.sh
Isi dengan:
#!/bin/bash
set -euo pipefail
/usr/bin/env rclone bisync "/mnt/nfs-data/shared" "gdrive:Home Server" \
--workdir /var/lib/rclone-bisync \
--create-empty-src-dirs \
--exclude ".recycle/**" \
--drive-acknowledge-abuse \
--log-file /var/log/rclone/bisync-home-server.log \
--log-level INFO
chown -R namauser:namauser /mnt/nfs-data/shared
find /mnt/nfs-data/shared -type d -exec chmod 2770 {} +
find /mnt/nfs-data/shared -type f -exec chmod 0770 {} +
Jadikan executable:
chmod +x /usr/local/bin/rclone-bisync-home-server.sh
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.
| Perintah | Efek |
|---|---|
chown -R namauser:namauser | Semua file/folder dimiliki namauser |
chmod 2770 pada direktori | Permission rwxrws--- dengan setgid aktif |
chmod 0770 pada file | Permission rwxrwx---; bit execute memungkinkan file .exe dijalankan dari share |
Jika dukungan eksekusi file
.exetidak diperlukan, ganti0770menjadi0660.
Tes jalankan script secara manual:
/usr/local/bin/rclone-bisync-home-server.sh
Cek log:
tail -n 20 /var/log/rclone/bisync-home-server.log
Pastikan ada baris Bisync successful tanpa error fatal.
nano /etc/systemd/system/rclone-bisync.service
[Unit]
Description=Rclone Bisync Google Drive
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/rclone-bisync-home-server.sh
nano /etc/systemd/system/rclone-bisync.timer
[Unit]
Description=Run Rclone Bisync every 30 minutes
[Timer]
OnBootSec=1min
OnUnitActiveSec=30min
[Install]
WantedBy=timers.target
Penjelasan jadwal:
| Direktif | Keterangan |
|---|---|
OnBootSec=1min | Setelah boot, tunggu 1 menit sebelum sync pertama |
OnUnitActiveSec=30min | Setelah 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.
systemctl daemon-reload
systemctl enable --now rclone-bisync.timer
Verifikasi:
systemctl list-timers | grep rclone-bisync
systemctl is-active rclone-bisync.timer
Output harus menampilkan jadwal sync berikutnya dan status active.
# Install
apt update && apt upgrade -y
apt install curl unzip -y
curl https://rclone.org/install.sh | bash
rclone version
# Konfigurasi remote
rclone config
# Verifikasi koneksi
rclone lsd gdrive:
# Persiapan folder
mkdir -p /var/lib/rclone-bisync
mkdir -p /var/log/rclone
# Upload awal (jika Drive kosong)
rclone copy /mnt/nfs-data/shared "gdrive:Home Server" -P --create-empty-src-dirs
# Inisialisasi bisync
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
# Verifikasi state
find /var/lib/rclone-bisync -maxdepth 1 -type f | sort
# Buat dan aktifkan script + timer
nano /usr/local/bin/rclone-bisync-home-server.sh
chmod +x /usr/local/bin/rclone-bisync-home-server.sh
nano /etc/systemd/system/rclone-bisync.service
nano /etc/systemd/system/rclone-bisync.timer
systemctl daemon-reload
systemctl enable --now rclone-bisync.timer
# Verifikasi timer
systemctl list-timers | grep rclone-bisync
| File | Lokasi |
|---|---|
| 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 |
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.
Artikel ini disusun berdasarkan pengujian langsung pada lingkungan berikut:
/mnt/nfs-data/shared (folder share Samba)