Rsync Untuk Sinkronisasi berbasis CLI

By | August 7, 2024
222 Views

Rsync, singkatan dari “remote sync,” adalah alat yang sangat efektif dan efisien untuk mentransfer dan menyinkronkan file di antara komputer. Dikembangkan oleh Andrew Tridgell dan Paul Mackerras pada tahun 1996, rsync telah menjadi salah satu alat favorit para administrator sistem dan pengguna Linux untuk menjaga data tetap sinkron di berbagai lokasi.

Fitur Utama rsync

  1. Sinkronisasi Inkremental: Rsync hanya mentransfer bagian file yang berubah, bukan seluruh file, sehingga menghemat bandwidth dan waktu.
  2. Kompresi Data: Data yang ditransfer dapat dikompresi, yang mengurangi ukuran transfer dan mempercepat proses sinkronisasi.
  3. Preservasi Atribut File: Rsync mempertahankan atribut file seperti izin, tanggal modifikasi, dan kepemilikan, sehingga file yang disinkronkan tetap memiliki atribut yang sama dengan aslinya.
  4. Opsi Pemfilteran: Anda dapat menyertakan atau mengecualikan file tertentu dari proses sinkronisasi menggunakan pola atau aturan filter.
  5. Sinkronisasi Lokal dan Jarak Jauh: Rsync dapat digunakan untuk sinkronisasi file baik di dalam komputer yang sama maupun antara komputer yang berbeda melalui jaringan.

Rsync untuk Sinkron file di Server ke Local

Kalian bisa install di mac menggunakan perintah

brew install rsync

 

Biasanya saya menggunaan Rsync untuk melakukan backup harian menggunakan koneksi ssh. Perintah yang biasa digunakan yaitu

rsync -avh user@remote:/path/sumber/ /path/tujuan/

dengan keterangan sebagai berikut

Penjelasan Opsi

  • -a: Mode arsip, yang mengaktifkan opsi rekursif dan mempertahankan atribut file.
  • -v: Mode verbose, yang menampilkan informasi detail selama proses sinkronisasi.
  • -h: Menampilkan ukuran file dalam format yang mudah dibaca (human-readable).

Atau kita tambahkan berikut

rsync -avh --delete /home/user/ /backup/home/user/

Opsi --delete memastikan bahwa file yang dihapus di sumber juga dihapus di tujuan, sehingga backup tetap sinkron.

Contoh berikut saya gunakan untuk remote ssh untuk download hasil pelatihan model sebuah deep learning via jaringan ssh

rsync -a -v --delete bejo@xxx.xx.xx.xxx:"/home/bejo/Mask R CNN/Model Stardist/checkpoint model1/"  "/Users/user/Desktop"

Walaupun mudah digunakan, tapi ada sedikit kekurangan yaitu

Keterbatasan:

  • Kinerja mungkin terbatas oleh kecepatan jaringan.
  • Tidak mendukung sinkronisasi data berbasis waktu nyata tanpa pengaturan tambahan.

Rsync Command di linux

Sesuai dengan namanya, maka untuk menjalankan rsync maka akan menggunakan perintah “rsync”. Berikut beberapa parameter perintah rsync yang sering digunakan

  • -a, –archive: Parameter ini akan menyalin file secara rekursif dengan tetap menjaga atribut pada file seperti permission. opsi ini merupakan opsi yang sering digunakan, dan umumnya akan dikombinasikan dengan parameter yang lain.
  • -v, –verbose: Parameter ini berfungsi untuk menampilkan output detail saat proses rsync dilakukan. Hal ini akan membuat Anda dapat melihat proses apa yang sedang dilakukan oleh proses rsync.
  • -z, –compress: Parameter ini akan mengaktifkan compress file selama proses transfer. Dengan parameter ini tentunya juga dapat menghemat bandwidth saat proses rsync dijalankan.
  • -r, –recursive: Parameter ini akan menyalin direktori secara rekursif. Dengan parameter ini proses rsync tidak hanya dilakukan untuk file di folder utama saja namun juga akan dilakukan untuk semua subfolder dan file-file yang ada di dalamnya.
  • -u, –update: Parameter ini hanya akan menyalin file jika file yang akan diitransfer memiliki timestamp yang lebih baru atau jika file tersebut tidak ada di server tujuan transfer.
  • –delete: Parameter ini akan menghapus file dari tujuan jika file tersebut tidak ada di sumber. Ini sangat berguna untuk menjaga agar tujuan sesuai dengan sumber.
  • –exclude=PATTERN: Parameter ini akan mengabaikan file atau direktori yang cocok dengan pola yang ditentukan. Hal Ini akan memungkinkan anda untuk menyaring file yang tidak ingin di transfer.
  • –progress: Parameter ini akan menampilkan progress transfer secara real-time, sehingga Anda dapat melihat berapa persen file yang telah ditransfer. Secara fungsi, parameter ini tidak jauh berbeda dengan –verbose.
  • –bwlimit=KBPS: Parameter ini berfungsi untuk melimitasi bandwidth yang akan digunakan dalam proses rsync dalam satuan KBPS, sehingga nantinya proses rsync tidak menggunakan keseluruhan bandwidth yang tersedia.