rsync
adalah utilitas baris perintah yang cepat dan serbaguna untuk menyinkronkan file dan direktori antara dua lokasi melalui shell jarak jauh, atau dari/ke daemon Rsync jarak jauh. Ini menyediakan transfer file tambahan yang cepat dengan hanya mentransfer perbedaan antara sumber dan tujuan.
Rsync dapat digunakan untuk mirroring data, incremental backup, menyalin file antar sistem, dan sebagai pengganti scp
, sftp
, dan cp
perintah.
Artikel ini menjelaskan cara menggunakan rsync
melalui contoh-contoh praktis dan penjelasan rinci tentang rsync
yang paling umum pilihan.
Menginstal Rsync #
rsync
utilitas sudah diinstal sebelumnya pada sebagian besar distribusi Linux dan macOS. Jika Anda tidak memiliki rsync
diinstal pada sistem Anda, Anda dapat dengan mudah menginstalnya menggunakan manajer paket distribusi Anda.
Instal Rsync di Ubuntu dan Debian #
sudo apt install rsync
Instal Rsync di CentOS dan Fedora #
sudo yum install rsync
Sintaks Perintah Rsync #
Sebelum masuk ke cara menggunakan rsync
perintah, mari kita mulai dengan meninjau sintaks dasar.
rsync
ekspresi utilitas mengambil bentuk berikut:
Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
OPTION
- Opsi rsync.SRC
- Direktori sumber.DEST
- Direktori tujuan.USER
- Nama pengguna jarak jauh.HOST
- Nama host atau Alamat IP jarak jauh.
rsync
menyediakan sejumlah opsi yang mengontrol bagaimana perintah berperilaku. Opsi yang paling banyak digunakan adalah:
-a
,--archive
, mode arsip, setara dengan-rlptgoD
. Opsi ini memberi tahursync
untuk menyinkronkan direktori secara rekursif, mentransfer perangkat khusus dan memblokir, mempertahankan tautan simbolis, waktu modifikasi, grup, kepemilikan, dan izin.-z
,--compress
. Opsi ini memaksarsync
untuk mengompresi data saat dikirim ke mesin tujuan. Gunakan opsi ini hanya jika koneksi ke mesin jarak jauh lambat.-P
, setara dengan--partial --progress
. Saat opsi ini digunakan,rsync
menunjukkan bilah kemajuan selama transfer dan menyimpan file yang ditransfer sebagian. Berguna saat mentransfer file besar melalui koneksi jaringan yang lambat atau tidak stabil.--delete
. Saat opsi ini digunakan,rsync
menghapus file asing dari lokasi tujuan. Ini berguna untuk mirroring.-q
,--quiet
. Gunakan opsi ini jika Anda ingin menyembunyikan pesan non-kesalahan.-e
. Opsi ini memungkinkan Anda untuk memilih shell jarak jauh yang berbeda. Secara default,rsync
dikonfigurasi untuk menggunakan ssh.
Penggunaan Rsync Dasar #
Kasus penggunaan paling dasar dari rsync
adalah menyalin satu file dari satu ke lokasi lokal lainnya. Ini contohnya:
rsync -a /opt/filename.zip /tmp/
Pengguna yang menjalankan perintah harus memiliki izin baca di lokasi sumber dan izin tulis di tujuan.
Menghilangkan nama file dari lokasi tujuan menyalin file dengan nama saat ini. Jika Anda ingin menyimpan file dengan nama yang berbeda, tentukan nama baru di bagian tujuan:
rsync -a /opt/filename.zip /tmp/newfilename.zip
Kekuatan sebenarnya dari rsync
datang saat menyinkronkan direktori. Contoh di bawah ini menunjukkan cara membuat cadangan lokal file situs web:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Jika direktori tujuan tidak ada, rsync
akan membuatnya.
Perlu disebutkan bahwa rsync
memberikan perlakuan berbeda pada direktori sumber dengan garis miring (/
). Jika direktori sumber memiliki garis miring, perintah hanya akan menyalin konten direktori ke direktori tujuan. Ketika garis miring dihilangkan, rsync
menyalin direktori sumber di dalam direktori tujuan.
Menggunakan rsync
untuk Menyinkronkan Data dari/ke Mesin jarak jauh #
Saat menggunakan rsync
untuk mentransfer data dari jarak jauh, itu harus diinstal pada mesin sumber dan tujuan. Versi baru rsync
dikonfigurasi untuk menggunakan SSH sebagai shell jarak jauh default.
Dalam contoh berikut, kami mentransfer direktori dari mesin lokal ke mesin jarak jauh:
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Jika Anda belum mengatur login SSH tanpa kata sandi ke mesin jarak jauh, Anda akan diminta memasukkan kata sandi pengguna. Untuk mentransfer data dari jarak jauh ke mesin lokal, gunakan lokasi jarak jauh sebagai sumber:
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Jika SSH pada host jarak jauh mendengarkan pada port selain dari default 22 , tentukan port menggunakan -e
pilihan:
rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Saat mentransfer data dalam jumlah besar, disarankan untuk menjalankan rsync
perintah di dalam sesi layar atau untuk menggunakan -P
pilihan:
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Kecualikan File dan Direktori #
Ada dua opsi untuk mengecualikan file dan direktori. Opsi pertama adalah menggunakan --exclude
argumen dan tentukan file dan direktori yang ingin Anda kecualikan pada baris perintah.
Saat mengecualikan file atau direktori, Anda perlu menggunakan jalur relatifnya ke lokasi sumber.
Dalam contoh berikut menunjukkan bagaimana mengecualikan node_modules
dan tmp
direktori:
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
Opsi kedua adalah menggunakan --exclude-from
dan tentukan file dan direktori yang ingin Anda kecualikan dalam file.
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txtnode_modules
tmp
Kesimpulan #
Kami telah menunjukkan kepada Anda cara menggunakan Rsync untuk menyalin dan menyinkronkan file dan direktori. Masih banyak lagi yang bisa dipelajari tentang Rsync di Rsync User's Manualpage.
Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.