GNU/Linux >> Belajar Linux >  >> Linux

Perintah rsync Linux dengan contoh praktis

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.


Linux
  1. Perintah JQ di Linux dengan Contoh

  2. Contoh Praktis Perintah rsync di Linux

  3. Contoh Praktis Perintah Unzip di Linux

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. 25 Berguna menemukan Contoh Praktis Perintah di Linux

  1. Perintah Echo di Linux (Dengan Contoh)

  2. Perintah Rsync di Linux dengan Contoh

  3. Perintah ip Linux dengan Contoh