GNU/Linux >> Belajar Linux >  >> Linux

17 Contoh Perintah rsync (sinkronisasi jarak jauh) yang berguna di Linux

Seperti namanya, perintah rsync digunakan untuk menyinkronkan (atau menyalin) file dan direktori secara lokal dan jarak jauh. Salah satu fitur penting dari rsync adalah ia bekerja pada “algoritma transfer delta ”, artinya hanya akan menyinkronkan atau menyalin perubahan dari sumber ke tujuan alih-alih menyalin seluruh file yang pada akhirnya mengurangi jumlah data yang dikirim melalui jaringan. Geeks Linux umumnya menggunakan perintah rsync untuk mengelola aktivitas pencadangan, pencerminan, dan pemulihan sehari-hari. Ia menggunakan shell jarak jauh seperti SSH saat menyinkronkan file dari mesin lokal ke mesin jarak jauh dan setiap pengguna dalam sistem dapat menggunakan perintah rsync karena tidak memerlukan hak root atau sudo..

Dalam artikel ini kita akan membahas 17 contoh perintah rsync yang berguna di Linux, contoh-contoh ini akan membantu khususnya pemula Linux untuk mengelola tugas sinkronisasi, mirroring, dan pencadangan mereka dengan lebih efisien.

Perintah Rsync tersedia untuk semua sistem operasi seperti UNIX dan Linux. Ketika kita melakukan instalasi minimal CentOS &RHEL OS maka paket rsync bukan bagian dari instalasi default, jadi untuk menginstal rsync pada CentOS &RHEL, jalankan perintah yum di bawah ini

~]# yum install rsync -y

Di Sistem operasi Seperti Debian (Ubuntu &Linux Mint) gunakan perintah apt di bawah ini untuk menginstal alat rysnc,

~]# apt install rsync -y

Sintaks perintah rsync:

Sinkronisasi Lokal:# rsync {options} {Sumber} {Tujuan}

Tarikan Sinkronisasi Jarak Jauh:# rsync {options}  @: 

Remote Sync Push:# rsync       @:

Beberapa opsi yang umum digunakan dalam perintah rsync tercantum di bawah ini:

  • -v, –verbose                           Output verbose
  • -q, –quiet                              menekan keluaran pesan
  • -a, –archive                           mengarsipkan file dan direktori saat menyinkronkan ( -a sama dengan opsi berikut -rlptgoD)
  • -r, –rekursif                        menyinkronkan file dan direktori secara rekursif
  • -b, –backup                           ambil backup selama sinkronisasi
  • -u, –update                           jangan salin file dari sumber ke tujuan jika file tujuan lebih baru
  • -l, –links                               salin symlink sebagai symlink selama sinkronisasi
  • -n, –dry-run                          melakukan uji coba tanpa sinkronisasi
  • -e, –rsh=COMMAND           sebutkan shell jarak jauh yang akan digunakan dalam rsync
  • -z, –kompresi                       kompres data file selama transfer
  • -h, –human-readable           menampilkan angka keluaran dalam format yang dapat dibaca manusia
  • –kemajuan                             menampilkan kemajuan sinkronisasi selama transfer

Mari lompat ke contoh berguna dari perintah rsync

Contoh:1) Salin atau Sinkronkan file secara lokal (rsync -zvh)

Mari kita asumsikan kita ingin menyalin file dari direktori home pengguna pkumar ke folder /opt/back, jalankan perintah rsync di bawah ini

[[email protected] ~]# rsync -zvh /home/pkumar/OpenStack-Networking.pdf /opt/backupOpenStack-Networking.pdfsent 4,09M byte  diterima 35 byte  2,73M byte/sectotal size 6,15M  speedup 1,50 [[dilindungi email] ~]#

Di atas kita telah menggunakan opsi seperti -z untuk kompresi, -v untuk keluaran verbose dan -h untuk keluaran yang dapat dibaca manusia.

Contoh:2) Salin atau Sinkronkan direktori secara lokal (rsync -zavh)

Mari kita asumsikan kita ingin menyalin atau menyinkronkan direktori home pengguna pkumar ke folder /opt/backup, jalankan perintah rsync di bawah ini dengan opsi -zavh ,

[[email protected] ~]# rsync -zavh /home/pkumar /opt/backupsending inkremental file listpkumar/pkumar/.bash_logoutpkumar/.bash_profilepkumar/.bashrcpkumar/OpenStack-Networking.pdf dikirim 4,09 juta byte  diterima 96 byte  8,19 juta byte ukuran byte/sektoral adalah 6,15M  percepatan adalah 1,50[[email protected] ~]#

Mari kita verifikasi apakah direktori disalin atau tidak, jalankan perintah di bawah ini,

[[dilindungi email] ~]# ls -ld /opt/backup/*-rwx------. 1 root   root   6153239 Apr  7 00:25 /opt/backup/OpenStack-Networking.pdfdrwx------. 2 pkumar pkumar      90 Apr  7 00:25 /opt/backup/pkumar[[email protected] ~]#

Seperti yang kita lihat, direktori "pkumar" dibuat di folder tujuan dan isinya juga disalin. Pada contoh di atas jika menggunakan trail / setelah folder sumber (/home/pkumar/) maka perintah rsync tidak akan membuat direktori pkumar di tujuan tetapi hanya akan menyalin isinya.

[[email protected] ~]# rsync -zavh /home/pkumar/ /opt/backup

Contoh:3) Salin file &direktori secara lokal secara rekursif (rsync -zrvh atau rsync -zavh)

Mari kita asumsikan kita memiliki banyak file dan direktori di dalam direktori home pengguna pkumar, gunakan perintah rsync di bawah ini untuk menyalin file dan direktori secara rekursif, gunakan opsi -a atau -r untuk menyalin file dan direktori secara rekursif.

Catatan :Dalam perintah rsync -a opsi digunakan untuk pengarsipan selama penyalinan atau sinkronisasi dan selain pengarsipan -opsi juga digunakan untuk hal berikut:

  • menyalin file dan direktori secara rekursif
  • salin symlink sebagai symlink
  • pertahankan izin
  • melestarikan grup
  • menghemat waktu modifikasi
  • mempertahankan kepemilikan
[[email protected] ~]# rsync -zrvh /home/pkumar /opt/backupor[[email protected] ~]# rsync -zavh /home/pkumar /opt/backup

Contoh:4) Salin atau sinkronkan file dan direktori dari sistem lokal ke sistem jarak jauh

Misalkan kita ingin menyalin folder “/home/pkumar/techi ” dari mesin lokal ke mesin jarak jauh (192.168.1.29) di bawah /opt

[[email protected] ~]# rsync -zarvh /home/pkumar/techi [email protected]:/opt[email protected]'s password:……………………………………… …………………techi/OTRS/techi/OTRS/Database-Selection-OTRS-Installation-CentOS7.jpgtechi/OTRS/Install-OTRS-Accept-License.pngtechi/OTRS/Install-OTRS-CentOS7-RHEL7.jpgtechi /OTRS/mysql-secure-installation-centos7-part2.jpg dikirim 34,85 juta byte  diterima 2,65 ribu byte  6,34 juta byte/ukuran sektor adalah 37,77 juta  percepatan adalah 1,08……………………………………………… ………………[[dilindungi email] ~]#

Contoh:5) Salin atau Sinkronkan file dan direktori dari mesin jarak jauh ke sistem lokal

Misalkan kita ingin menyalin file dan direktori dari mesin jarak jauh (192.168.1.29) ke sistem lokal kita, pada contoh di bawah ini saya menyalin folder jarak jauh “/opt/rpms_db ” di mesin lokal saya di bawah /tmp map

[[email protected] ~]# rsync -zarvh [email protected]:/opt/rpms_db /tmp[email protected]'s password:menerima daftar file tambahan………………………………… …………………………rpms_db/rpms_db/httpd-2.4.6-88.el7.centos.x86_64.rpmrpms_db/httpd-tools-2.4.6-88.el7.centos.x86_64.rpmrpms_db/postfix- 2.10.1-7.el7.x86_64.rpmrpms_db/pytalloc-2.1.13-1.el7.x86_64.rpmrpms_db/samba-4.8.3-4.el7.x86_64.rpmrpms_db/samba-client-libs-4.8.3- 4.el7.x86_64.rpmrpms_db/samba-common-4.8.3-4.el7.noarch.rpmrpms_db/samba-common-libs-4.8.3-4.el7.x86_64.rpmrpms_db/samba-common-tools-4.8. 3-4.el7.x86_64.rpmrpms_db/samba-libs-4.8.3-4.el7.x86_64.rpmsent 484 byte  diterima 15,45M byte  1,07M byte/ukuran sektor 16,37M  percepatan 1,06[[email protected] ~] #

Perintah di atas akan secara otomatis membuat folder “rpms_db” di bawah folder /tmp di mesin lokal kita.

[[email protected] ~]# ls -l /tmp/total 8-rwx------. 1 root root  827 Apr  6 12:54 ks-script-avmuxwdrwxr-xr-x. 2 root root 4096 Apr  7 01:42 rpms_db-rw-------. 1 root root    0 Apr  6 12:35 yum.log[[email protected] ~]# ls -l /tmp/rpms_db/total 16028……………………………………-rw-r-- r--. 1 root root 2844028 12 Nov 09:28 httpd-2.4.6-88.el7.centos.x86_64.rpm-rw-r--r--. 1 root root   92504 Nov 12 09:28 httpd-tools-2.4.6-88.el7.centos.x86_64.rpm-rw-r--r--. 1 root root 2558136 12 Nov 09:44 postfix-2.10.1-7.el7.x86_64.rpm-rw-r--r--. 1 root root   17404 Nov 12 09:44 pytalloc-2.1.13-1.el7.x86_64.rpm-rw-r--r--. 1 root root  696472 Nov 12 09:46 samba-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 root root 5070800 12 Nov 09:46 samba-client-libs-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 root root  210984 Nov 12 10:19 samba-common-4.8.3-4.el7.noarch.rpm-rw-r--r--. 1 root root  167512 Nov 12 09:46 samba-common-libs-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 root root 458380 Nov 12 09:46 samba-common-tools-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 root root  282332 Nov 12 09:46 samba-libs-4.8.3-4.el7.x86_64.rpm……………………………………[[email protected] ~]#

Contoh:6) Tentukan shell jarak jauh selama sinkronisasi (rsync -e ssh)

Dalam perintah rsync kita dapat menentukan shell jarak jauh seperti ssh selama sinkronisasi, mari kita asumsikan kita ingin menggunakan komunikasi yang aman antara sumber ke mesin tujuan melalui rsync maka kita harus menggunakan ssh sebagai shell jarak jauh, contoh ditunjukkan di bawah ini

[[email protected] ~]# rsync -zarvh -e ssh  [email protected]:/opt/rpms_db  /tmp[email protected] kata sandi:menerima daftar file tambahan………………………… ………………………………………………………rpms_db/rpms_db/httpd-2.4.6-88.el7.centos.x86_64.rpmrpms_db/httpd-tools-2.4.6-88. el7.centos.x86_64.rpmrpms_db/postfix-2.10.1-7.el7.x86_64.rpmrpms_db/pytalloc-2.1.13-1.el7.x86_64.rpmrpms_db/samba-4.8.3-4.el7.x86_64.rpmrpms_db/ samba-client-libs-4.8.3-4.el7.x86_64.rpmrpms_db/samba-common-4.8.3-4.el7.noarch.rpmrpms_db/samba-common-libs-4.8.3-4.el7.x86_64. rpmrpms_db/samba-common-tools-4.8.3-4.el7.x86_64.rpmrpms_db/samba-libs-4.8.3-4.el7.x86_64.rpmsent 484 byte menerima 15,45M byte 1,82M byte/ukuran sectotal adalah 16,37M speedup adalah 1,06[[email protected] ~]#

Contoh:7) Menampilkan kemajuan Sinkronisasi dalam output perintah rsync

Jika Anda ingin melihat kemajuan sinkronisasi atau penyalinan dalam perintah rsync, gunakan “–progress “, contoh ditunjukkan di bawah

[[email protected] ~]# rsync -avh --progress [email protected]:/opt/rpms_db /tmp[email protected]'s password:menerima daftar file tambahan………………………… …………………………………………………………………………..rpms_db/rpms_db/httpd-2.4.6-88.el7.centos.x86_64.rpm         2.84 M 100%   35.22MB/s    0:00:00 (xfr#6, to-chk=18/25)rpms_db/httpd-tools-2.4.6-88.el7.centos.x86_64.rpm        92.50K 100%    1.13MB /s    0:00:00 (xfr#7, to-chk=17/25)rpms_db/postfix-2.10.1-7.el7.x86_64.rpm         2.56M 100%   14.44MB/s    0:00:00 (xfr #17, to-chk=7/25)rpms_db/samba-4.8.3-4.el7.x86_64.rpm        696.47K 100%    3.71MB/s    0:00:00 (xfr#19, to-chk=5/ 25)rpms_db/samba-client-libs-4.8.3-4.el7.x86_64.rpm         5.07M 100%   19.90MB/s    0:00:00 (xfr#20, to-chk=4/25) rpms_db/samba -common-4.8.3-4.el7.noarch.rpm        210.98K 100%  844.42kB/s    0:00:00 (xfr#21, to-chk=3/25) rpms_db/samba-common-libs-4.8. 3-4.el7.x86_64.rpm       167.51K 100%  667.70kB/s    0:00:00 (xfr#22, to-chk=2/25) rpms_db/samba-common-tools-4.8.3-4.el7 .x86_6 4.rpm        458.38K 100%    1.77MB/s    0:00:00 (xfr#23, to-chk=1/25)rpms_db/samba-libs-4.8.3-4.el7.x86_64.rpm        282.33K 100% 1,09MB/s    0:00:00 (xfr#24, to-chk=0/25)dikirim 484 byte  diterima 16,38M byte  3,64M byte/ukuran sektor 16,37M  percepatan 1,00[[dilindungi email] ~]# 

Baca Juga : 14 Contoh Perintah SCP untuk Mentransfer File dengan Aman di Linux

Contoh:8) Salin struktur direktori tanpa menyalin file

Ada beberapa skenario di mana kita ingin menyalin struktur direktori dengan melewatkan file hanya dari mesin lokal ke remote atau sebaliknya.

Misalkan kita ingin menyalin struktur direktori “/home/pkumar” dari mesin lokal ke mesin jarak jauh (192.168.1.29) di bawah folder /opt.

[email protected] ~]# rsync -av -f"+ */" ​​-f"- *" /home/pkumar [email protected]:/opt/[email protected]'s password:building file list . .. selesai………………………………………………pkumar/dikirim 43 byte  diterima 19 byte  17.71 byte/ukuran sektor adalah 0  percepatan adalah 0.00[[email protected] ~]#

Contoh:9) Lanjutkan transfer file besar setelah gagal di scp

Ada beberapa skenario di profil admin linux di mana kami mulai menyalin file yang lebih besar menggunakan perintah scp, tetapi file tersebut dihentikan di tengah dan kami tidak dapat mulai menyalinnya lagi menggunakan scp karena ukurannya yang besar dan konsumsi waktu.

Jadi dalam situasi ini perintah rsync dapat digunakan karena  dapat mulai menyalin file dari tempat ditinggalkan atau dihentikan, atau dengan kata lain rsync dapat mentransfer file yang sebagian disalin menggunakan perintah scp. Contoh ditunjukkan di bawah ini,

[[email protected] ~]# scp [email protected]:/root/ubuntu-18.04-desktop-amd64.iso /opt[email protected]'s password:ubuntu-18.04-desktop-amd64.iso                28% 526MB  61.5MB/s   00:21 ETA^CDiisi oleh sinyal 2.[[email protected] ~]#[[email protected] ~]# rsync -P --rsh=ssh [email protected]:/root/ubuntu-18.04 -desktop-amd64.iso /opt[email protected]'s password:ubuntu-18.04-desktop-amd64.iso  1.921.843.200 100%   18.47MB/s    0:01:39 (xfr#1, to-chk=0/1) [[dilindungi email] ~]#

Contoh:10) Hapus file di tujuan jika tidak ada di sumber (–hapus)

Jika Anda telah menyinkronkan file dari sumber ke tujuan dan dari sumber Anda telah menghapus file maka Anda dapat memaksa perintah rsync untuk menghapus file di tujuan menggunakan opsi –delete, contoh ditunjukkan di bawah ini

[[email protected] ~]# rsync -avz --delete /opt/rpms_db [email protected]:/tmp/rpms_db[email protected] kata sandi:mengirim daftar file tambahan menghapus rpms_db/apr-util-1.5. 2-6.el7.x86_64.rpmmenghapus rpms_db/apr-1.4.8-3.el7_4.1.x86_64.rpmrpms_db/sent 862 byte diterima 105 byte  276.29 byte/ukuran sectotal 15.947.152 percepatan 16.491.37[[]email protected] #

Contoh:11) Batasi ukuran transfer file (–max-size)

Jika Anda tidak ingin mentransfer atau menyalin file besar menggunakan rsync, gunakan opsi ‘–max-size={specify-size-here}’ , anggap saja kita tidak ingin mentransfer file yang ukurannya lebih dari 500K,

Catatan:Untuk menentukan ukuran dalam MB gunakan M dan untuk GB gunakan G.

[[email protected] ~]# rsync -avz --max-size='500K' /opt/rpms_db [email protected]:/tmp

Contoh:12) Jangan sinkronkan/salin file yang dimodifikasi di tempat tujuan

Ada beberapa skenario di mana kami memodifikasi file di tujuan dan kami tidak ingin menimpa file yang dimodifikasi dari sumber saat menyinkronkan, jadi ini dapat dengan mudah dicapai menggunakan -u opsi dalam perintah rsync

[[email protected] ~]# rsync -avzu [email protected]:/opt/techi /home/pkumar/techi[email protected]'s password:menerima daftar file tambahan, 37 byte, menerima 4.960 byte, 1.427,71 byte/sectotal ukuran 37.771.649  percepatan adalah 7.558.87[[email protected] ~]#

Contoh:13) Hapus file dari sumber setelah sinkronisasi (–remove-source-files)

Misalkan Anda ingin menghapus file dari sumber setelah sinkronisasi selesai menggunakan perintah rsync. Pada contoh di bawah ini, folder dari sistem lokal “/home/pkumar/techi.tgz ” disinkronkan ke sistem jarak jauh (192.168.1.29), setelah sinkronisasi selesai, file akan dihapus dari sumber.

[[email protected] ~]# rsync --remove-source-files -zvh /home/pkumar/techi.tgz [email protected]:/opt[email protected]'s password:techi.tgzsent 597 bytes  diterima 43 byte  182,86 byte/ukuran sektor adalah 518  percepatan adalah 0,81[[email protected] ~]#[[email protected] ~]# ls -l /home/pkumar/techi.tgzls:tidak dapat mengakses /home/pkumar/techi.tgz :Tidak ada file atau direktori seperti itu[[email protected] ~]#

Contoh:14) Keringkan perintah rsync sebelum sinkronisasi sebenarnya

Mungkin ada beberapa situasi di mana kita bukan tentang perilaku perintah rsync jadi dalam kasus seperti itu lebih baik melakukan dry run rsync

[[email protected] ~]# rsync --dry-run --remove-source-files -zvh /home/pkumar/projects.tar  [email protected]:/opt[email protected]'s password:projects .tarsent 51 byte  diterima 19 byte  7.37 byte/ukuran sektor 981.24M  percepatan 14.017.682,29 (DRY RUN)[[email protected] ~]#

Contoh:15) Sertakan dan Kecualikan file selama sinkronisasi dengan rsync

Ada beberapa situasi di mana kita ingin menyalin atau menyinkronkan file &direktori jenis tertentu dan ingin mengecualikan file atau direktori jenis tertentu. Perintah Rsync mendukung opsi penyertaan dan pengecualian.

Pada contoh di bawah ini ingin menyalin file jenis pdf dan rpm dan mengecualikan jenis file png.

[[email protected] ~]# rsync -avz -e ssh --include '*.pdf *.rpm' --exclude '*.png' /home/pkumar/techi [email protected]:/opt[ kata sandi yang dilindungi email:mengirim file tambahan listtechi/techi/OpenStack-Networking.pdftechi/httpd-2.4.6-88.el7.centos.x86_64.rpmtechi/httpd-tools-2.4.6-88.el7.centos. x86_64.rpmtechi/postfix-2.10.1-7.el7.x86_64.rpmsent 9.469.912 byte  menerima 96 byte  2.705.716.57 byte/ukuran sectotal 11.647.907  percepatan 1,23[[email protected] ~]#

Contoh:16) Membatasi kecepatan transfer data di rsync (–bwlimit=)

Dalam perintah rsync kita dapat mengatur batas bandwidth untuk transfer data dari satu mesin ke mesin lainnya, gunakan ‘–bwlimit= ' dalam perintah rsync untuk membatasi kecepatan transfer data.

Mari kita asumsikan kita ingin mengatur kecepatan transfer data maksimum (kecepatan) adalah 600 KB/s dengan rsync, contoh ditunjukkan di bawah ini

[[email protected] ~]# rsync -avz --progress --bwlimit=600 /home/pkumar/techi [email protected]:/opt[email protected] kata sandi:mengirim file tambahan listtechi/techi/ OpenStack-Networking.pdf6,153,239 100%  910.02kB/s    0:00:06 (xfr#1, to-chk=6/8)techi/httpd-2.4.6-88.el7.centos.x86_64.rpm2.844.028 100%  615.28kB/s    0:00:04 (xfr#2, to-chk=5/8)techi/httpd-tools-2.4.6-88.el7.centos.x86_64.rpm92.504 100%  507.51kB/ s    0:00:00 (xfr#3, to-chk=4/8)techi/pkumar-2.png0 100%    0.00kB/s    0:00:00 (xfr#4, to-chk=3/8) techi/pkumar-3.png0 100%    0.00kB/s    0:00:00 (xfr#5, to-chk=2/8)techi/pkumar.png0 100%    0.00kB/s    0:00:00 (xfr# 6, to-chk=1/8)techi/postfix-2.10.1-7.el7.x86_64.rpm2,558,136 100%  594.80kB/s    0:00:04 (xfr#7, to-chk=0/8 ) terkirim 9.470.087 byte  menerima 153 byte  485.653.33 byte/ukuran sektoral adalah 11.647.907  percepatan adalah 1,23[[email protected] ~]#

Contoh:17) Lihat perbedaan file &direktori antara sumber dan tujuan

Gunakan “-i ” dalam perintah rsync untuk membuat daftar perbedaan dalam file dan direktori antara sumber dan tujuan. Contoh ditunjukkan di bawah ini

[[email protected]teway ~]# rsync -avzi /home/pkumar/techi [email protected]:/opt[email protected]'s password:sending inkremental file list.d..t..... . techi/ 

Sesuai output perintah di atas, ada perbedaan dalam file yang disebut "projects.txt" di tempat tujuan. Berikut adalah arti dari kata kunci pada output di atas,

  • d:menunjukkan perubahan pada file tujuan
  • f:menunjukkan file
  • t:menunjukkan perubahan stempel waktu
  • s:menunjukkan perubahan ukuran

Itu saja dari tutorial ini, jika contoh ini Anda memahami perintah rsync lebih efisien, silakan bagikan umpan balik dan komentar Anda

Baca Juga17 perintah tar yang berguna dengan contoh praktis di Linux

Baca Juga :Cara Memutar dan Mengompresi File Log di Linux dengan Logrotate


Linux
  1. 12 Contoh Perintah Wget yang Berguna di Linux

  2. ls Perintah di Linux:17 Contoh yang Berguna Dijelaskan

  3. 14 Contoh Perintah "cat" yang Berguna di Linux

  1. Perintah Rsync:20 Contoh Bermanfaat di Linux

  2. 20 Contoh Perintah Docker yang Berguna di Linux

  3. Contoh Praktis Perintah rsync di Linux

  1. 14 Contoh Perintah 'ls' yang Berguna di Linux

  2. 9 Contoh perintah sentuh yang berguna di Linux

  3. Perintah Rsync di Linux dengan Contoh