Setelah data tersimpan rapi di Neo Object Storage, ada kalanya kita perlu menariknya kembali ke mesin lokal — untuk restore backup, migrasi server, atau sekedar memverifikasi integritas file. Arah transfernya kebalikan dari artikel sebelumnya, tapi rclone menanganinya dengan command yang sama persis, hanya dengan posisi argumen yang dibalik.
Artikel ini adalah kelanjutan dari panduan manajemen Neo Object Storage dengan rclone. Asumsinya kamu sudah menginstal rclone dan remote neo-storage sudah terkonfigurasi. Jika belum, baca panduan tersebut terlebih dahulu sebelum melanjutkan.
Konsep Arah Transfer di Rclone
Semua command transfer di rclone menggunakan pola rclone <command> <sumber> <tujuan>. Untuk sinkronisasi dari cloud ke lokal, cukup tukar posisi argumennya: remote di kiri, path lokal di kanan.
Tiga command utama yang relevan:
| Command | Perilaku | Kapan digunakan |
|---|---|---|
copy | Salin file dari sumber ke tujuan, tidak menghapus file yang sudah ada di tujuan | Unduh file tertentu atau tambahan saja |
sync | Buat tujuan identik dengan sumber — file di tujuan yang tidak ada di sumber akan dihapus | Restore penuh atau mirror bucket |
copyto | Salin satu file ke path tujuan tertentu | Unduh satu file dengan nama berbeda |
Mengunduh File dari Bucket
Menyalin Seluruh Isi Bucket ke Lokal
copy adalah pilihan aman untuk sebagian besar kasus — ia hanya menambah file baru tanpa menyentuh file yang sudah ada di direktori tujuan:
rclone copy neo-storage:project-backups /home/deploy/restore/project-backups
Rclone akan membuat direktori tujuan secara otomatis jika belum ada. Semua file di bucket project-backups akan disalin ke /home/deploy/restore/project-backups dengan struktur direktori yang sama persis.
Mengunduh Subdirektori Tertentu
Jika bucket berisi banyak folder dan hanya butuh satu bagian:
rclone copy neo-storage:project-backups/uploads /home/deploy/restore/uploads
Ini hanya mengunduh konten dari uploads/ di dalam bucket, bukan keseluruhan bucket.
Mengunduh Satu File Spesifik
Gunakan copyto untuk mengunduh satu file ke path yang kamu tentukan:
rclone copyto neo-storage:project-backups/exports/laporan-2026-03.csv /home/deploy/restore/laporan-maret.csv
Berbeda dari copy, copyto menerima path file lengkap di tujuan — termasuk nama filenya. Ini berguna saat perlu mengunduh file dan sekaligus menamainya ulang.
Sinkronisasi Penuh: Mirror Bucket ke Lokal
Untuk restore total atau membuat mirror lokal dari sebuah bucket, gunakan sync:
rclone sync neo-storage:project-backups /home/deploy/mirror/project-backups
rclone sync menghapus file di direktori lokal yang tidak ada di bucket. Jalankan dengan --dry-run terlebih dahulu untuk memastikan tidak ada file lokal penting yang terhapus.
Simulasi tanpa perubahan nyata:
rclone sync neo-storage:project-backups /home/deploy/mirror/project-backups --dry-run
Output akan menampilkan daftar operasi yang akan dilakukan — salin, hapus, atau lewati — tanpa benar-benar mengeksekusinya.
Memantau Progress Transfer
Untuk bucket berukuran besar, tambahkan --progress agar transfer tidak terasa seperti black box:
rclone copy neo-storage:project-backups /home/deploy/restore/project-backups --progress
Output real-time menampilkan jumlah file yang sudah ditransfer, kecepatan transfer, dan estimasi waktu tersisa.
Kombinasikan dengan --transfers untuk mempercepat unduhan file kecil yang banyak:
rclone copy neo-storage:project-backups /home/deploy/restore/project-backups \
--transfers 16 \
--progress
Filter: Unduh Hanya File Tertentu
Rclone punya sistem filter yang fleksibel. Untuk mengunduh hanya file dengan ekstensi tertentu:
rclone copy neo-storage:project-backups /home/deploy/restore/sql-files \
--include "*.sql"
Atau eksklusikan file tertentu:
rclone copy neo-storage:project-backups /home/deploy/restore \
--exclude "*.tmp" \
--exclude "*.log"
Filter bisa dikombinasikan dan mendukung glob pattern. Untuk aturan filter yang kompleks, simpan ke file teks dan gunakan flag --filter-from:
# filter-rules.txt
+ *.sql
+ *.csv
- *
rclone copy neo-storage:project-backups /home/deploy/restore \
--filter-from /home/deploy/filter-rules.txt
Memeriksa Integritas File Setelah Transfer
Setelah mengunduh file kritis seperti backup database, verifikasi bahwa file tidak korup selama transfer:
rclone check neo-storage:project-backups /home/deploy/restore/project-backups
check membandingkan checksum antara file di bucket dan file lokal. Jika ada ketidakcocokan, rclone melaporkan file mana yang berbeda tanpa melakukan perubahan apapun.
Jalankan rclone check setelah setiap restore yang kritis. Ini jauh lebih andal dari sekadar memeriksa ukuran file, karena ia memverifikasi konten secara byte per byte.
Otomasi: Unduh Backup Harian Secara Otomatis
Untuk kebutuhan seperti menyimpan salinan lokal dari backup yang diunggah server setiap hari, buat script berikut:
#!/bin/bash
# /home/deploy/scripts/pull-backups.sh
BUCKET="project-backups"
LOCAL_DIR="/home/deploy/mirror/${BUCKET}"
LOG_DIR="/var/log/rclone"
TIMESTAMP=$(date +%Y-%m-%d)
mkdir -p "${LOCAL_DIR}" "${LOG_DIR}"
rclone sync "neo-storage:${BUCKET}" "${LOCAL_DIR}" \
--fast-list \
--transfers 8 \
--log-file="${LOG_DIR}/pull-${TIMESTAMP}.log" \
--log-level INFO
Jadwalkan via cron untuk jalan setiap pagi pukul 06.00, setelah backup malam selesai diunggah:
0 6 * * * /home/deploy/scripts/pull-backups.sh
Kesimpulan
Menarik data dari Neo Object Storage ke lokal dengan rclone semudah membalik argumen sumber dan tujuan. Yang membuat pendekatan ini kuat bukan hanya kemudahannya, tapi juga fitur-fitur pendukung seperti filter, checksum verification, dan logging yang membuat proses restore menjadi auditable dan dapat diandalkan. Untuk skenario yang lebih kompleks seperti sinkronisasi dua arah atau enkripsi file sebelum disimpan, eksplorasi rclone bisync dan rclone crypt bisa menjadi langkah berikutnya.