Ikhwan Saputera

Setiap Waktu adalah Belajar, Setiap Tempat adalah Sekolah, Setiap Orang adalah Guru

Tuesday, September 17, 2019

Rsync (Sinkronisasi Jarak Jauh): 5 Contoh Praktis Perintah Rsync di Linux

Sync (Remote Sync) adalah perintah yang paling sering digunakan untuk menyalin dan menyinkronkan file dan direktori dari jarak jauh serta secara lokal di sistem Linux / Unix. Dengan bantuan perintah rsync Anda dapat menyalin dan menyinkronkan data Anda dari jarak jauh dan secara lokal di seluruh direktori, di seluruh disk dan jaringan, melakukan pencadangan data dan mirroring antara dua mesin Linux.
Perintah Rsync

Sinkronisasi File Lokal dan Remote Rsync

Artikel ini menjelaskan 10 penggunaan dasar dan lanjutan dari perintah rsync untuk mentransfer file Anda dari jarak jauh dan secara lokal di mesin berbasis Linux. Anda tidak perlu menjadi pengguna root untuk menjalankan perintah rsync.

Beberapa kelebihan dan fitur perintah Rsync :

  • Secara efisien menyalin dan menyinkronkan file ke atau dari sistem jarak jauh. 
  • Mendukung penyalinan tautan, perangkat, pemilik, grup, dan izin. 
  • Ini lebih cepat daripada scp (Secure Copy) karena rsync menggunakan protokol pembaruan jarak jauh yang memungkinkan untuk mentransfer hanya perbedaan antara dua set file. Pertama kali, itu menyalin seluruh konten file atau direktori dari sumber ke tujuan tetapi dari waktu berikutnya, itu hanya menyalin blok dan byte yang diubah ke tujuan.
  • Rsync mengkonsumsi lebih sedikit bandwidth karena menggunakan metode kompresi dan dekompresi saat mengirim dan menerima data kedua ujungnya.
Sintaks dasar perintah rsync
 
# rsync opsi sumber tujuan

Beberapa opsi umum digunakan dengan perintah rsync
  •  -v: verbose 
  •  -r: menyalin data secara rekursif (tapi jangan pertahankan cap waktu dan izin saat mentransfer data 
  • -a: mode arsip, mode arsip memungkinkan menyalin file secara rekursif dan juga mempertahankan tautan simbolis, izin file, kepemilikan pengguna & grup, dan stempel waktu 
  • -z: kompres data file 
  • -h: angka keluaran yang bisa dibaca manusia, dalam format yang bisa dibaca manusia
  •  Sebagai catatan disarankan untuk Menyinkronkan File / Direktori Menggunakan Rsync dengan Port SSH Non-standar
 Instal rsync di mesin Linux Anda

Kita dapat menginstal paket rsync dengan bantuan perintah berikut.


# yum install rsync (On Red Hat based systems)
# apt-get install rsync (On Debian based systems) 

 
1. Salin / Sinkronkan File dan Direktori Secara Lokal
Salin / Sinkronkan File di Komputer Lokal

Perintah berikut ini akan menyinkronkan satu file pada mesin lokal dari satu lokasi ke lokasi lain. Di sini, dalam contoh ini, nama file backup.tar perlu disalin atau disinkronkan ke / tmp / backups / folder 


[root@ikhwans]# rsync -zvh backup.tar /tmp/backups/

created directory /tmp/backups

backup.tar

sent 14.71M bytes  received 31 bytes  3.27M bytes/sec

total size is 16.18M  speedup is 1.10 



Dalam contoh di atas, Anda dapat melihat bahwa jika tujuan belum ada rsync akan membuat direktori secara otomatis untuk tujuan.
Salin / Sinkronkan Direktori di Komputer Lokal

Perintah berikut akan mentransfer atau menyinkronkan semua file dari satu direktori ke direktori lain di mesin yang sama. Di sini, dalam contoh ini, / root / rpmpkgs berisi beberapa file paket rpm dan Anda ingin direktori tersebut disalin di dalam / tmp / backups / folder.


[root@ikhwans]# rsync -avzh /root/rpmpkgs /tmp/backups/

sending incremental file list

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent 4.99M bytes  received 92 bytes  3.33M bytes/sec

total size is 4.99M  speedup is 1.00
 



2. Salin / Sinkronkan File dan Direktori ke atau Dari Server
 
Salin Direktori dari Server Lokal ke Server Jarak Jauh

Perintah ini akan menyinkronkan direktori dari mesin lokal ke mesin jarak jauh. Sebagai contoh: Ada folder di komputer lokal Anda "rpmpkgs" yang berisi beberapa paket RPM dan Anda ingin agar konten direktori lokal dikirim ke server jarak jauh, Anda dapat menggunakan perintah berikut.
 
[root@ikhwans]$ rsync -avz rpmpkgs/ root@192.168.0.101:/home/

root@192.168.0.101's password:

sending incremental file list

./

httpd-2.2.3-82.el5.centos.i386.rpm

mod_ssl-2.2.3-82.el5.centos.i386.rpm

nagios-3.5.0.tar.gz

nagios-plugins-1.4.16.tar.gz

sent 4993369 bytes  received 91 bytes  399476.80 bytes/sec

total size is 4991313  speedup is 1.00
 
Copy/Sync a Remote Directory to a Local Machine
 
Perintah ini akan membantu Anda menyinkronkan direktori jarak jauh ke direktori lokal. Di sini, dalam contoh ini, direktori / home / tarunika / rpmpkgs yang ada di server jarak jauh sedang disalin di komputer lokal Anda di / tmp / myrpms. 
 
[root@ikhwans]# rsync -avzh root@192.168.0.100:/home/ikhwans/rpmpkgs /tmp/myrpms

root@192.168.0.100's password:

receiving incremental file list

created directory /tmp/myrpms

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent 91 bytes  received 4.99M bytes  322.16K bytes/sec

total size is 4.99M  speedup is 1.00
 
 
3. Rsync Atas SSH
Dengan rsync, kami dapat menggunakan SSH (Secure Shell) untuk transfer data, menggunakan protokol SSH saat mentransfer data kami, Anda dapat memastikan bahwa data Anda sedang ditransfer dalam koneksi aman dengan enkripsi sehingga tidak ada yang dapat membaca data Anda saat sedang ditransfer melalui jaringan di internet.

Juga ketika kita menggunakan rsync, kita perlu memberikan kata sandi pengguna / root untuk menyelesaikan tugas tertentu, jadi menggunakan opsi SSH akan mengirim login Anda dengan cara terenkripsi sehingga kata sandi Anda akan aman.
Salin File dari Server Jarak Jauh ke Server Lokal dengan SSH

Untuk menentukan protokol dengan rsync Anda harus memberikan opsi “-e” dengan nama protokol yang ingin Anda gunakan. Di sini, dalam contoh ini, Kami akan menggunakan "ssh" dengan opsi "-e" dan melakukan transfer data. 
 
[root@ikhwans]# rsync -avzhe ssh root@192.168.0.100:/root/install.log /tmp/

root@192.168.0.100's password:

receiving incremental file list

install.log

sent 30 bytes  received 8.12K bytes  1.48K bytes/sec

total size is 30.74K  speedup is 3.77
 
 
Salin File dari Server Lokal ke Server Jarak Jauh dengan SSH

[root@ikhwans]# rsync -avzhe ssh backup.tar root@192.168.0.100:/backups/

root@192.168.0.100's password:

sending incremental file list

backup.tar

sent 14.71M bytes  received 31 bytes  1.28M bytes/sec

total size is 16.18M  speedup is 1.10
 
 
4. Tampilkan Kemajuan Saat Mentransfer Data dengan rsync

Untuk menunjukkan progres saat mentransfer data dari satu mesin ke mesin lain, kita dapat menggunakan opsi ‘–progress’ untuk itu. Ini menampilkan file dan waktu yang tersisa untuk menyelesaikan transfer. 
 
[root@ikhwans]# rsync -avzhe ssh --progress /home/rpmpkgs root@192.168.0.100:/root/rpmpkgs

root@192.168.0.100's password:

sending incremental file list

created directory /root/rpmpkgs

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

           1.02M 100%        2.72MB/s        0:00:00 (xfer#1, to-check=3/5)

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

          99.04K 100%  241.19kB/s        0:00:00 (xfer#2, to-check=2/5)

rpmpkgs/nagios-3.5.0.tar.gz

           1.79M 100%        1.56MB/s        0:00:01 (xfer#3, to-check=1/5)

rpmpkgs/nagios-plugins-1.4.16.tar.gz

           2.09M 100%        1.47MB/s        0:00:01 (xfer#4, to-check=0/5)

sent 4.99M bytes  received 92 bytes  475.56K bytes/sec

total size is 4.99M  speedup is 1.00
 
 
 
5. Penggunaan Opsi –include dan –exclude

Dua opsi ini memungkinkan kami untuk memasukkan dan mengecualikan file dengan menentukan parameter dengan opsi ini membantu kami menentukan file atau direktori yang ingin Anda sertakan dalam sinkronisasi Anda dan mengecualikan file dan folder dengan Anda tidak ingin ditransfer.

Di sini, dalam contoh ini, perintah rsync akan menyertakan hanya file dan direktori yang dimulai dengan ‘R’ dan mengecualikan semua file dan direktori lainnya.
 
[root@ikhwans]# rsync -avze ssh --include 'R*' --exclude '*' root@192.168.0.101:/var/lib/rpm/ /root/rpm

root@192.168.0.101's password:

receiving incremental file list

created directory /root/rpm

./

Requirename

Requireversion

sent 67 bytes  received 167289 bytes  7438.04 bytes/sec

total size is 434176  speedup is 2.59
 
 
 
 

No comments:

Post a Comment