Halo, Kawan Belajar!
Di era digital ini, transfer data yang cepat, efisien, dan aman menjadi kebutuhan mutlak. Salah satu alat yang terbukti andal dan efisien untuk tugas ini adalah Rsync. Artikel ini memberikan panduan praktis penggunaan Rsync, mencakup sintaks dasar dan contoh penggunaan untuk membantu kamu mengoptimalkan proses transfer data. Silakan simak panduan lengkapnya dibawah ini ya.
Apa Itu Rsync? #
Remote synchronization, atau yang biasa dikenal dengan Rsync, adalah perangkat lunak berbasis baris perintah yang memungkinkan kamu untuk menyalin dan menyinkronkan file dan direktori secara efisien antara dua lokasi, baik lokal maupun remote. Kawan Belajar bisa mengenal Rsync lebih dalam pada artikel kami berikut: Mengenal Rsync: Pengertian, Kegunaan, dan Keunggulan
Prasyarat Menggunakan Rsync #
Sebelum menggunakan Rsync, berikut beberapa syarat yang perlu kamu penuhi terlebih dahulu:
- Memiliki hak akses koneksi SSH ke server
- Untuk melakukan remote transfer, pastikan Rsync sudah terinstal pada kedua server (Baca juga: Cara Menginstal Rsync)
Sintaks Dasar Rsync #
Berikut ini adalah perintah dasar untuk menggunakan Rsync:
rsync [option] [source] [destination]
Pada sintaks tersebut, ada tiga komponen yang dapat kamu tentukan:
- Option merupakan pilihan yang ingin kamu lakukan terhadap file atau direktori. Ini dilakukan menggunakan beberapa opsi yang tersedia di Rsync.
- Source merupakan sumber file atau atau sumber direktori yang ingin ditransfer.
- Destination merupakan direktori yang ingin dituju
Sintaks Dasar untuk Remote Shell #
Sintaks Rsync akan berbeda jika kamu menggunakan remote shell, seperti SSH. Gunakan perintah Rsync di bawah ini untuk mengakses remote shell (PULL ):
rsync [option] [user@]host:source [destination]
Jalankan perintah Rsync ini untuk mengakses remote shell (PUSH ) :
rsync [option] [source] [user@]host:[destination]
Opsi yang Sering Digunakan #
Rsync menyediakan banyak sekali pilihan, di antara banyaknya opsi tersebut, berikut beberapa opsi yang paling sering digunakan:
-v atau --verbose
Memberikan visual output yang terjadi selama proses transfer.
-a atau --archive
Mode arsip yang mencakup penyalinan rekursif dan mempertahankan atribut file seperti izin file, stempel waktu, dan tautan simbolik.
-r atau --recursive
Menyalin direktori secara rekursif.
--delete
Melakukan mirroring dengan menyesuaikan file dan direktori antara sumber dan tujuan.
--exclude=POLA
Mengecualikan file atau direktori yang cocok dengan pola yang ditentukan.
--include=POLA
Menyertakan file atau direktori yang cocok dengan pola yang ditentukan.
-z atau --compress
Melakukan kompresi data file selama transfer untuk mengurangi penggunaan bandwidth.
--dry-run
Melakukan uji coba tanpa melakukan perubahan nyata.
-u atau --update
Melewati file di sisi tujuan yang lebih baru dari file sumber sehingga hanya file lama yang diperbarui.
-h
Menampilkan output yang mudah dibaca manusia.
-P atau --progress
Menampilkan kemajuan selama transfer.
Untuk daftar lengkap semua pilihan Rsync yang tersedia, kamu dapat menjalankan perintah berikut:
rsync --help

Menyalin File dan Direktori Secara Lokal #
Untuk menyalin file secara lokal, kamu dapat menggunakan perintah berikut yang akan menyalin satu file di mesin lokal dari satu lokasi ke lokasi lain dengan tetap mempertahankan atribut file tersebut.
rsync -azvh source/dir1/file1.txt destination/

Pada contoh tersebut, Rsync akan terlebih dahulu membuat direktori destination apabila belum tersedia, sebelum kemudian menyalin file dengan nama file1.txt.
Adapun untuk menyalin direktori secara rekursif, kamu dapat menggunakan perintah berikut:
rsync -avzh source/dir1/subdir1 dst

Menyalin File dan Direktori ke Remote Server #
Untuk menyalin direktori dari server lokal ke remote server, kamu dapat menggunakan perintah berikut:
rsync -avzh source/dir1/file2.txt user@host:/root/destination/

Dengan demikian file bernama file2.txt yang semula berada di server lokal saja, sekarang tersedia pada direktori /root/destination/ yang ada pada remote server tujuan.
Kemudian, apabila kamu ingin menyalin direktori secara remote server, kamu dapat menggunakan perintah berikut:
rsync -rvzh -e 'ssh -p 2201' dir1/source/ user@host:/root/destination/

Menyalin File dari Remote Server ke Server Lokal dengan SSH #
Berikut perintah yang dapat kamu gunakan untuk menyalin file dari remote server ke server lokal:
rsync -avzh -e ‘ssh -p 2201’ user@host:/root/destination/nyoba.txt dst/

Menampilkan Progress Ketika Mentransfer Data #
Untuk menunjukkan progres saat mentransfer data dari satu server ke server lain, kamu dapat menggunakan pilihan --progress
atau -P
, yang menampilkan file dan waktu yang tersisa untuk menyelesaikan transfer. Sebagai contoh berikut cara mentransfer file dengan nama transfer.txt dengan menampilkan progres.
rsync -avzh -e 'ssh -p 2201' --progress source/dir1/transfer.txt user@host:/root/dst/

Melakukan Mirroring dengan Rsync #
Jika file atau direktori tidak ada di sumbernya, namun sudah ada di tujuan, kamu mungkin ingin menghapus file atau direktori yang ada di target saat menyinkronkan. Kamu dapat menggunakan opsi --delete
untuk menghapus file yang tidak ada di direktori sumber.
rsync -avzhP -e 'ssh -p 2201' --delete source/ user@host:/root/destination

Pada Gambar 9 tersebut tampak bahwa file yang tidak terdapat pada direktori sumber akan dihapus dari direktori tujuan. Namun, file yang belum terdapat pada direktori tujuan, akan disalin dari direktori sumber.
Mengecualikan File dengan Ekstensi Tertentu #
Kamu dapat memanfaatkan opsi --exclude
untuk memfilter file dengan ekstensi tertentu supaya tidak disertakan dalam proses transfer. Contoh penggunaanya adalah sebagai berikut:
rsync -rvhP -e 'ssh -p 2201' --exclude='*.bin' /root/source/dir1/subdir1/ user@host:/root/dst/


Dalam contoh yang diberikan, Rsync akan mengecualikan file dengan ekstensi yang ditentukan (*.bin) selama transfer, namun akan tetap menyalin file lainnya.
Menghapus File Sumber Setelah Transfer #
Misalkan kamu dihadapkan pada suatu kondisi dimana memiliki web server utama dan juga server cadangan, kamu membuat backup harian dan menyinkronkannya dengan server cadangan, namun kamu tidak ingin penyimpanan server web utama kamu penuh. Dengan demikian, kamu dapat menggunakan opsi --remove-source-files
untuk menghapus file sumber setelah dilakukan transfer ke tujuan.
rsync -rvhP -e 'ssh -p 2201' --remove-source-files
/root/backupwebsite/website_backup_11072024_01\:00.tar.gz user@host:/root/dst/

Uji Coba Menyalin File Dengan Opsi –dry-run #
Jika kamu ingin melakukan uji coba perintah Rsync, namun tidak benar benar melakukan transfer data dengan menggunakan Rsync. Maka gunakan opsi –dry-run, dengan begitu kamu hanya akan diberikan output yang akan terjadi ketika perintah dijalankan, tanpa benar-benar dilakukan oleh sistem.

Kesimpulan #
Semoga dengan adanya artikel ini dapat memberikan wawasan baru terkait penggunaan tools Rsync untuk transfer data di sistem operasi Linux. Jika kamu memiliki pertanyaan atau hal yang ingin didiskusikan mengenai artikel di atas, kami dengan senang hati siap membantu kamu! Silakan hubungi kami melalui email di info@cloudkilat.com atau dengan membuka tiket bantuan melalui Portal Client CloudKilat.
Selamat mencoba, Kawan Belajar!