Halo, Kawan Belajar!
Di era digital saat ini, transfer data yang cepat, efisien, dan aman menjadi kebutuhan mutlak. Salah satu alat yang terbukti handal dan efisien untuk tugas ini adalah rsync. Artikel ini memberikan panduan praktis penggunaan rsync, mencakup sintaks dasar dan contoh penggunaan untuk membantu Anda mengoptimalkan proses transfer data. Silakan sImak panduan lengkapnya dibawah ini ya. 🙂
Apa Itu Rsync? #
Remote synchronization atau yang biasa dikenal rsync adalah utilitas baris perintah yang memungkinkan Anda 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 terlebih dahulu Anda penuhi:
- 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 Anda tentukan:
- Option merupakan opsi yang ingin Anda 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 Anda 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 opsi, diantara banyaknya opsi tersebut, berikut beberapa opsi yang paling seringkali dipergunakan:
-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, 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 opsi rsync yang tersedia, Anda dapat menjalankan perintah berikut:
rsync --help
Menyalin File dan Direktori Secara Lokal #
Untuk menyalin file secara lokal, Anda 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, Anda 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, Anda 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 Anda ingin menyalin direktori secara remote server, Anda 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 Anda 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 progress saat mentransfer data dari satu server ke server lain, Anda dapat menggunakan opsi --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 progress.
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, Anda mungkin ingin menghapus file atau direktori yang ada di target saat menyinkronkan. Anda 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 #
Anda 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 Anda dihadapkan pada suatu kondisi dimana memiliki web server utama dan juga server cadangan, Anda membuat backup harian dan menyinkronkannya dengan server cadangan, namun Anda tidak ingin penyimpanan server web utama Anda penuh. Dengan demikian, Anda 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 Anda ingin melakukan uji coba perintah rsync, namun tidak benar benar melakukan transfer data dengan menggunakan rsync. Maka gunakan opsi –dry-run, dengan begitu Anda hanya akan diberikan output yang akan terjadi ketika perintah dijalankan, tanpa benar benar dilakukan oleh sistem.
Kesimpulan #
Dengan adanya artikel ini, diharapkan dapat memberikan wawasan baru khususnya mengenai penggunaan tools rsync untuk transfer data di sistem operasi Linux. Dan harapannya, Anda dapat mengimplementasikan penggunaan rsync sesuai kebutuhan dengan memanfaatkan opsi-opsi yang disediakan.