Rsync (Remote sync) adalah utilitas baris perintah yang cepat dan serbaguna untuk menyinkronkan file dan folder antara dua lokasi melalui remote shell, atau ke remote daemon rsync. Rsync memungkinkan transfer file inkremental dengan hanya mentransfer perbedaan antara sumber dan lokasi tujuan.

Rsync dapat digunakan untuk mirroring data, backup tambahan, menyalin file antar sistem dan sebagai pengganti perintah scp, sftp, dan cp untuk penggunaan sehari-hari.

Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menggunakan rsync melalui contoh-contoh praktis dan penjelasan rinci tentang opsi rsync yang paling umum.

Instal Rsync

Utilitas rsync umumnya sudah diinstal pada sebagian besar distribusi Linux dan pada Mac OSX. Anda dapat memeriksa apakah Rsync telah diinstal pada sistem Anda dengan mengetik:

rsync --version
rsync  version 3.1.2  protocol version 31

Jika Anda belum menginstal rsync di sistem Anda, Anda dapat dengan mudah menginstalnya menggunakan manajer paket distribusi Anda.

Install Rsync di Ubuntu dan Debian

sudo apt install rsync

Install Rsync di CentOS dan Fedora

sudo yum install rsync

Sintaks Perintah Rsync

Sebelum membahas cara menggunakan perintah rsync, mari kita mulai dengan meninjau sintaks dasar.

Ekspresi utilitas rsync mengambil bentuk berikut:

Lokal ke Lokal:  rsync [OPTION]... SRC [SRC]... DEST
Lokal ke Remote: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
Remote ke Lokal: rsync [OPTION]... [USER@]HOST:SRC [DEST]
  • OPTION – The rsync options
  • SRC – Source directory
  • DEST – Destination directory
  • USER – Remote username
  • HOST – Remote host

Rsync menyediakan sejumlah opsi yang mengontrol setiap aspek perilakunya. Opsi yang paling banyak digunakan adalah:

  • -a--archive, setara dengan -rlptgoD. Opsi yang biasa digunakan yang akan menyinkronkan direktori secara rekursif, mentransfer perangkat khusus, mempertahankan symbolic links, waktu modifikasi, grup, kepemilikan, dan izin.
  • -z--compress Opsi ini akan memaksa rsync untuk compress data saat dikirim ke mesin tujuan. Gunakan opsi ini hanya jika koneksi ke mesin jarak jauh lambat.
  • -P, --partial --progress– Opsi ini akan memberi tahu rsync untuk menampilkan bilah progres selama transfer dan untuk menyimpan sebagian file yang ditransfer. Perintah ini berguna ketika mentransfer file besar melalui koneksi jaringan yang lambat atau tidak stabil.
  • --delete Saat menggunakan opsi ini rsync akan menghapus file asing dari lokasi tujuan. Perintah ini berguna untuk mirroring.
  • -q--quiet Gunakan opsi ini jika Anda ingin menekan output pesan yang keluar dan hanya menampilkan pesan error.
  • -e. Opsi ini memungkinkan Anda untuk memilih remote shell yang berbeda. Secara default, Rsync dikonfigurasi untuk menggunakan ssh.

Penggunaan Dasar Rsync

Untuk menyalin satu file dari satu ke lokasi lokal lain, Anda harus menjalankan perintah berikut:

rsync -a /opt/namafile.zip /tmp/

Menghilangkan nama file dari lokasi tujuan, maka nama file akan sama dengan nama saat di transfer. Jika ingin menyimpan file dengan nama lain, Anda perlu menentukan nama baru:

rsync -a /opt/namafile.zip /tmp/namabaru.zip

Dalam contoh di bawah ini kita membuat backup lokal untuk file situs web:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Jika direktori tujuan tidak ada, maka rsync akan membuatnya.

Perlu disebutkan bahwa rsync memberikan perlakuan yang berbeda ke direktori sumber dengan garis miring /. Jika menambahkan garis miring pada direktori sumber, ia hanya akan menyalin konten direktori ke direktori tujuan.

Ketika garis miring dihilangkan, rsync akan menyalin direktori sumber ke dalam direktori tujuan.

Cara Menggunakan Rsync untuk remote transfer

Saat menggunakan rsync untuk transfer jarak jauh, rsync juga harus diinstal pada sumber dan mesin tujuan. Versi rsync baru dikonfigurasikan untuk menggunakan SSH sebagai shell remote default.

Dalam contoh berikut, kami mentransfer direktori dari lokal ke mesin jarak jauh:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Jika belum menetapkan login SSH tanpa password ke mesin jarak jauh, Anda akan diminta untuk memasukkan password.

Jika ingin mentransfer data dari mesin jarak jauh ke mesin lokal maka Anda perlu menggunakan lokasi jarak jauh sebagai sumber:

rsync -a remote_user@remote_host_atau_ip:/opt/media/ /opt/media/

Jika SSH pada host jarak jauh listen pada port selain dari default 22 maka Anda dapat menentukan port menggunakan argumen -e:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Ketika Anda mentransfer sejumlah besar data, untuk kemudahan disarankan untuk menjalankan perintah rsync di dalam sesi screen, tmux atau menggunakan opsi -P.

Kecualikan File dan Direktori

Saat mengecualikan file atau direktori, Anda perlu menggunakan jalur relatifnya. Ada dua opsi untuk mengecualikan file dan direktori saat menggunakan rsync.

Opsi pertama adalah menggunakan argumen --exclude dan menentukan file dan direktori yang ingin Anda kecualikan pada baris perintah.

Dalam contoh berikut ini kita akan mengecualikan direktori node_modules dan dan tmp yang terletak di dalam direktori src

rsync -a --exclude=node_modules --exclude=tmp /src/ /dst_directory/

Opsi kedua adalah menggunakan argumen --exclude-from dan tentukan file dan direktori yang ingin Anda kecualikan dalam sebuah file.

rsync -a --exclude-from='/daftar-exclude.txt' /src/ /dst_directory/

mari kita lihat file daftar-exclude.txt dengan perintah cat :

cat exclude-file.txt
node_modules
tmp

Kesimpulan

Dalam tutorial ini, Anda telah belajar cara menggunakan Rsync untuk menyalin dan menyinkronkan file dan direktori. Ada banyak lagi yang bisa dipelajari tentang Rsync di halaman Panduan Pengguna Rsync.