Rsync adalah alat penyalinan file yang cepat dan luar biasa serbaguna. Itu dapat menyalin secara lokal, ke/dari host lain melalui shell jarak jauh apa pun, atau ke/dari daemon rsync jarak jauh. Ini menawarkan sejumlah besar opsi yang mengontrol setiap aspek perilakunya dan memungkinkan spesifikasi yang sangat fleksibel dari kumpulan file untuk disalin. Ini terkenal dengan algoritme transfer delta, yang mengurangi jumlah data yang dikirim melalui jaringan dengan hanya mengirimkan perbedaan antara file sumber dan file yang ada di tujuan. Rsync banyak digunakan untuk pencadangan dan pencerminan dan sebagai perintah penyalinan yang ditingkatkan untuk penggunaan sehari-hari.
Rsync menemukan file yang perlu ditransfer menggunakan algoritme "pemeriksaan cepat" (secara default) yang mencari file yang telah berubah ukurannya atau dalam waktu modifikasi terakhir. Setiap perubahan pada atribut lain yang dipertahankan (seperti yang diminta oleh opsi) dibuat pada file tujuan secara langsung saat pemeriksaan cepat menunjukkan bahwa data file tidak perlu diperbarui.
Beberapa fitur tambahan rsync adalah
- dukungan untuk menyalin tautan, perangkat, pemilik, grup, dan izin
- opsi pengecualian dan pengecualian-dari yang mirip dengan tar GNU
- mode pengecualian CVS untuk mengabaikan file yang sama yang akan diabaikan CVS
- dapat menggunakan shell jarak jauh transparan, termasuk ssh atau rsh
- tidak memerlukan hak pengguna super
- pemipaan transfer file untuk meminimalkan biaya latensi
- dukungan untuk daemon rsync anonim atau terotentikasi (ideal untuk mirroring)
Sintaks
Sintaks dasar dari perintah rsync adalah:
# rsync options source destination
Beberapa Opsi yang Umum Digunakan:
- –hapus :menghapus file yang tidak ada di pengirim (sistem).
- -v :Keluaran verbose
- -e “opsi ssh” :tentukan ssh sebagai shell jarak jauh
- -a :mode arsip
- -r :recurse ke direktori
- -z :kompres data file
contoh perintah rsync di Linux
menyinkronkan file dan direktori pada sistem lokal
# rsync -zvr /usr/ /root/sync-data/
Perintah di atas akan menyalin atau menyinkronkan semua file &direktori folder /usr ke folder /root/sync-data.
menyinkronkan file secara lokal dengan mempertahankan izin
-a opsi lakukan hal berikut :menyediakan fitur rekursif &mempertahankan izin, tautan simbolik, pengguna &informasi grup.
# rsync -azv /usr/ /root/sync-data/
sinkronisasi/salin file dari mesin lokal ke server jauh
# rsync -avz /root/sync-data/ [email protected]:/tmp
Perintah di atas akan menyalin data folder /root/syc-data ke mesin jarak jauh dengan kredensial pengguna root di folder /tmp.
sinkronisasi/salin file dari server jauh ke mesin lokal
# rsync -avz [email protected]:/tmp/src /opt [email protected]'s password: receiving file list ... done src/ src/debug/ src/kernels/ sent 38 bytes received 99 bytes 10.96 bytes/sec total size is 0 speedup is 0.00
Perintah di atas akan menyalin folder /tmp/src server jauh ke folder /opt mesin lokal.
Sinkronisasi jarak jauh melalui ssh
rsync memungkinkan kita untuk menyinkronkan file ke mesin jarak jauh &sebaliknya melalui ssh yaitu komunikasi yang aman. Gunakan "rsync -e ssh" untuk menentukan shell jarak jauh mana yang akan digunakan. Dalam kasus kami, rsync akan menggunakan ssh.
# rsync -avz -e ssh [email protected]:/var/lib/rpm /opt The authenticity of host '192.168.2.149 (192.168.2.149)' can't be established. RSA key fingerprint is 45:fc:99:57:34:ba:6a:bb:e3:6f:00:bb:ca:15:3d:c3. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.2.149' (RSA) to the list of known hosts. [email protected]'s password: receiving file list ... done rpm/ rpm/.rpm.lock rpm/Basenames rpm/Conflictname ............ rpm/Triggername sent 422 bytes received 12521670 bytes 115410.99 bytes/sec total size is 35467264 speedup is 2.83
Melihat kemajuan dengan sinkronisasi
Kita dapat menggunakan opsi “–progress” untuk melihat kemajuan sinkronisasi.
# rsync -avz --progress [email protected]:/usr /opt [email protected]'s password: receiving file list ... 44609 files to consider usr/ usr/tmp -> ../var/tmp usr/bin/ usr/bin/.fipscheck.hmac 65 100% 63.48kB/s 0:00:00 (xfer#1, to-check=44605/44609) usr/bin/.ssh.hmac 65 100% 63.48kB/s 0:00:00 (xfer#2, to-check=44604/44609) usr/bin/GET 14519 100% 248.75kB/s 0:00:00 (xfer#3, to-check=44603/44609) usr/bin/HEAD 14519 100% 232.44kB/s 0:00:00 (xfer#4, to-check=44602/44609) ............
Sertakan dan kecualikan opsi di rsync
rsync memungkinkan kita untuk menentukan pola yang ingin kita sertakan dan mengecualikan file atau direktori saat melakukan sinkronisasi.
# rsync -avz --include 'P*' --exclude '*' [email protected]:/var/lib/rpm/ /opt [email protected]'s password: receiving file list ... done ./ Packages Providename Provideversion Pubkeys sent 129 bytes received 9395561 bytes 695977.04 bytes/sec total size is 28999680 speedup is 3.09
Contoh di atas hanya menyertakan file atau direktori yang dimulai dengan 'P' dan mengecualikan semua file lainnya. (menggunakan rsync kecualikan '*' )
Hapus file di target jika file tidak ada di sumbernya
Dengan bantuan opsi “–delete” di rsync, kita dapat menghapus file yang dibuat di target jika file yang sama tidak ada di sumbernya.
# rsync -avz --delete [email protected]:/var/lib/rpm/ /opt
CONTOH:9 LIHAT PERUBAHAN ANTARA SUMBER &TARGET MENGGUNAKAN OPSI “-I”
Melihat perubahan antara sumber dan target
Anda dapat melihat perubahan antara file sumber dan target menggunakan opsi "-i". Misalnya:
# rsync -avzi [email protected]:/var/lib/rpm/ /opt [email protected]'s password: receiving file list ... done >f+++++++ .rpm.lock >f+++++++ Basenames >f+++++++ Conflictname >f+++++++ Dirnames >f+++++++ Filedigests >f+++++++ Group >f+++++++ Installtid >f+++++++ Name >f+++++++ Obsoletename >f+++++++ Requirename >f+++++++ Requireversion >f+++++++ Sha1header >f+++++++ Sigmd5 >f+++++++ Triggername sent 328 bytes received 3126214 bytes 297765.90 bytes/sec total size is 35467264 speedup is 11.34
Batasi ukuran file transfer
Anda dapat memaksa rsync untuk tidak mentransfer file yang lebih besar dari ukuran tertentu menggunakan opsi “–max-size”.
# rsync -avz --max-size='200k' [email protected]:/var/lib/rpm/ /opt
Perintah di atas membuat rsync hanya mentransfer file yang kurang dari atau sama dengan 200K. Kami dapat menunjukkan M untuk megabyte dan G untuk gigabyte.