Skip to main content
Audit Penyimpanan dan Backup Menggunakan Rclone
  1. doc/

Audit Penyimpanan dan Backup Menggunakan Rclone

·4 mins·

Tutorial ini menjelaskan cara memeriksa penggunaan penyimpanan di macOS, mengonfigurasi remote SFTP pada rclone, lalu menyalin data ke storage eksternal melalui jaringan lokal. Contoh di bawah menggunakan satu transfer dan satu checker karena HDD eksternal yang digunakan memiliki keterbatasan I/O.

Daftar Isi
#

1. Audit penggunaan penyimpanan dengan ncdu
#

ncdu (NCurses Disk Usage) menampilkan penggunaan disk dalam antarmuka Terminal yang interaktif. Tool ini membantu menemukan direktori berukuran besar sebelum data dipindahkan atau dibersihkan.

Instal ncdu melalui Homebrew:

brew install ncdu

Pindai direktori home:

ncdu ~

Gunakan tombol panah untuk berpindah direktori. Ukuran setiap direktori ditampilkan sehingga folder yang paling banyak menggunakan ruang dapat diprioritaskan.

2. Mengenal konsep dasar rclone
#

rclone adalah utilitas command-line untuk mengelola dan memindahkan file antara komputer lokal dan berbagai storage, seperti SFTP, WebDAV, S3, Google Drive, dan storage lainnya.

Beberapa istilah penting:

  • Local path adalah path di komputer tempat perintah dijalankan, misalnya /Users/nama/Documents.
  • Remote adalah konfigurasi storage yang disimpan oleh rclone, misalnya server-sftp.
  • Remote path adalah lokasi tujuan di dalam remote, misalnya server-sftp:/mnt/backup.
  • copy menyalin file baru atau file yang berubah tanpa menghapus file tambahan di tujuan.
  • sync membuat tujuan menyerupai sumber dan dapat menghapus file di tujuan. Gunakan dengan hati-hati.
  • check membandingkan sumber dan tujuan tanpa menyalin file.

Untuk backup, rclone copy biasanya lebih aman sebagai pilihan awal karena tidak menghapus file yang sudah ada di tujuan.

3. Instalasi rclone
#

Di macOS, instal rclone melalui Homebrew:

brew install rclone

Pastikan instalasi berhasil:

rclone version

4. Konfigurasi remote SFTP
#

Remote SFTP digunakan untuk terhubung ke host Linux atau Ubuntu yang dapat diakses melalui SSH. Jalankan konfigurasi interaktif:

rclone config

Pada menu yang muncul:

  1. Pilih n untuk membuat remote baru.
  2. Beri nama remote, misalnya server-sftp.
  3. Pilih tipe storage sftp.
  4. Masukkan hostname atau alamat IP server.
  5. Masukkan port SSH, username, dan metode autentikasi yang digunakan.
  6. Simpan konfigurasi setelah semua nilai benar.

Uji koneksi dan tampilkan isi direktori remote:

rclone lsd server-sftp:/

Jika remote menggunakan SSH key, pastikan key tersebut sudah dapat digunakan oleh SSH biasa terlebih dahulu. Kredensial rclone tersimpan dalam file konfigurasinya, sehingga file tersebut perlu diperlakukan sebagai data sensitif.

5. Menyalin data ke remote
#

Perintah berikut menyalin isi direktori sumber ke direktori tujuan:

rclone copy /Users/nama/Documents server-sftp:/mnt/backup/Documents \
  --progress \
  --transfers 1 \
  --checkers 1

Arti parameter yang digunakan:

  • --progress menampilkan progres, kecepatan, jumlah file, dan estimasi waktu.
  • --transfers 1 membatasi jumlah file yang sedang ditransfer secara bersamaan.
  • --checkers 1 membatasi proses pemeriksaan file yang berjalan bersamaan.

--transfers dan --checkers mengendalikan dua jenis konkurensi yang berbeda. --transfers memengaruhi proses pengiriman file, sedangkan --checkers memengaruhi proses pemeriksaan metadata dan pencarian file yang perlu disalin.

Mengapa thread dibatasi?
#

Di kasus ini saya menggunakan HDD eksternal, yang terhubung melalui USB atau enclosure dengan controller terbatas, banyak operasi paralel dapat membuat head disk sering berpindah dan antrean I/O meningkat. Dampaknya dapat berupa kecepatan yang tidak stabil, waktu respons tinggi, panas berlebih, atau koneksi yang terputus dan menyebabkan media unmount.

Karena itu, konfigurasi --transfers 1 --checkers 1 dipilih untuk mengutamakan kestabilan dan mengurangi tekanan pada I/O, meskipun kecepatan maksimum menjadi lebih rendah. Nilai ini juga cocok untuk transfer data besar yang tidak perlu selesai secepat mungkin. Jika sistem remote yang dipilih memiliki IO yang tinggi, opsi ini bisa dihilangkan.

Sebelum transfer sebenarnya, gunakan --dry-run untuk melihat tindakan yang akan dilakukan:

rclone copy /Users/nama/Documents server-sftp:/mnt/backup/Documents \
  --dry-run \
  --transfers 1 \
  --checkers 1

Jika koneksi atau proses transfer terputus, jalankan kembali perintah yang sama. rclone copy akan melewati file yang sudah sama dan melanjutkan file yang belum selesai.

6. Memeriksa dan memvalidasi hasil backup
#

Untuk melihat file di tujuan:

rclone ls server-sftp:/mnt/backup/Documents

Setelah proses penyalinan selesai, bandingkan sumber dan tujuan tanpa mentransfer ulang data:

rclone check /Users/nama/Documents server-sftp:/mnt/backup/Documents \
  --checkers 1

Jika remote dan sumber menyediakan hash yang sama, rclone dapat memakainya untuk validasi. Jika hash tidak tersedia, rclone menggunakan metode pembanding yang didukung oleh backend, seperti ukuran file dan waktu modifikasi. Perhatikan output perintah check dan pastikan tidak ada file yang hilang atau berbeda.

7. Perintah tambahan yang berguna
#

Tampilkan konfigurasi remote yang tersedia tanpa menampilkan isi file konfigurasi:

rclone listremotes

Lihat statistik penggunaan ruang pada remote:

rclone about server-sftp:

Batasi jenis file atau direktori yang dipindahkan dengan pola pengecualian:

rclone copy /Users/nama/Documents server-sftp:/mnt/backup/Documents \
  --exclude "*.tmp" \
  --exclude ".DS_Store" \
  --transfers 1 \
  --checkers 1 \
  --progress

Untuk proses panjang, simpan output ke log agar mudah ditinjau:

rclone copy /Users/nama/Documents server-sftp:/mnt/backup/Documents \
  --transfers 1 \
  --checkers 1 \
  --progress \
  --log-file "$HOME/rclone-backup.log" \
  --log-level INFO
Askarhabibulloh
Author
Askarhabibulloh