Dalam hal mentransfer file antar sistem di jaringan, pengguna Linux dan Unix memiliki banyak alat yang mereka miliki.
Protokol yang paling populer untuk transfer data adalah SSH dan FTP. Meskipun FTP sangat populer, selalu lebih suka menggunakan SSH karena ini adalah cara paling aman untuk mentransfer file Anda.
Ada alat khusus untuk transfer file melalui SSH seperti scp
dan sftp
tetapi tidak satupun dari mereka memiliki semua fitur yang rsync
menyediakan. rsync
dapat digunakan untuk mirroring data, backup tambahan, menyalin file antar sistem dan sebagainya.
Dalam tutorial ini, kami akan menjelaskan cara menyalin file dengan rsync
melalui SSH.
Persyaratan #
-
rsync
utilitas harus diinstal pada tujuan dan sistem sumber. Jika tidak diinstal, Anda dapat menginstalnya menggunakan manajer paket distribusi Anda:Ubuntu dan Debian:
sudo apt install rsync
CentOS dan Fedora:
sudo yum install rsync
-
Akses SSH ke komputer jarak jauh.
-
Pengguna yang menjalankan
rsync
perintah dan pengguna SSH jarak jauh harus memiliki izin yang sesuai untuk membaca dan menulis file.
Menggunakan rsync
untuk Mentransfer File melalui SSH #
Dengan rsync
, Anda dapat mentransfer file dan direktori melalui SSH dari dan ke server jarak jauh.
Sintaks umum untuk mentransfer file dengan rsync
adalah sebagai berikut:
Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]
Dimana SRC
adalah direktori sumber, DEST
adalah direktori tujuan USER
adalah nama pengguna SSH jarak jauh dan HOST
adalah host SSH jarak jauh atau Alamat IP.
Versi rsync yang lebih baru dikonfigurasi untuk menggunakan SSH sebagai shell jarak jauh default sehingga Anda dapat menghilangkan -e ssh
pilihan.
Misalnya, untuk mentransfer satu file /opt/file.zip
dari sistem lokal ke /var/www/
direktori pada sistem jarak jauh dengan IP 12.12.12.12
Anda akan menjalankan:
rsync -a /opt/file.zip [email protected]:/var/www/
-a
opsi singkatan dari mode arsip yang akan menyinkronkan direktori secara rekursif, mentransfer perangkat khusus dan memblokir, mempertahankan tautan simbolis, waktu modifikasi, grup, kepemilikan, dan izin.
Jika Anda belum mengatur login SSH tanpa kata sandi ke mesin jarak jauh, Anda akan diminta untuk memasukkan kata sandi pengguna.
Jika file ada di server jauh, file itu akan ditimpa. Jika Anda ingin menyimpan file dengan nama yang berbeda, tentukan nama barunya:
rsync -a /opt/file.zip [email protected]:/var/www/file2.zip
Untuk mentransfer data dari jarak jauh ke mesin lokal, gunakan lokasi jarak jauh sebagai sumber dan lokasi lokal sebagai tujuan:
rsync -a [email protected]:/var/www/file.zip /opt/
Mentransfer direktori dengan rsync
melalui SSH sama dengan mentransfer file.
Penting untuk diketahui bahwa rsync
memberikan perlakuan berbeda pada direktori sumber dengan garis miring /
. Ketika direktori sumber memiliki garis miring, rsync
hanya akan menyalin konten direktori sumber ke direktori tujuan. Ketika garis miring dihilangkan, direktori sumber akan disalin ke dalam direktori tujuan.
Misalnya untuk mentransfer /opt/website/images/
lokal direktori ke /var/www/images/
direktori pada mesin jarak jauh yang akan Anda ketik:
rsync -a /home/linuxize/images/ [email protected]:/var/www/images/
Gunakan --delete
opsi jika Anda ingin menyinkronkan direktori lokal dan jarak jauh. Hati-hati saat menggunakan opsi ini karena akan menghapus file di direktori tujuan jika tidak ada di direktori sumber.
rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/
Jika SSH pada host jarak jauh mendengarkan pada port selain 22
default , tentukan port menggunakan -e
pilihan. Misalnya, jika SSH mendengarkan pada port 3322
Anda akan menggunakan:
rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/
Saat mentransfer data dalam jumlah besar, disarankan untuk menjalankan rsync
perintah di dalam sesi layar atau gunakan -P
opsi yang memberi tahu rsync
untuk menampilkan bilah kemajuan selama transfer dan menyimpan sebagian file yang ditransfer:
rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/
Kesimpulan #
Kami telah menunjukkan cara menggunakan rsync
melalui SSH untuk menyalin dan menyinkronkan file dan direktori.
Anda mungkin juga ingin membaca cara mengecualikan file atau direktori dengan rsync
.
Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.