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 optionsSRC
– Source directoryDEST
– Destination directoryUSER
– Remote usernameHOST
– 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.