GNU/Linux >> Belajar Linux >  >> Linux

Cara Mentransfer File dengan Rsync melalui SSH

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.


Linux
  1. Cara Mentransfer File di Linux dengan SCP dan Rsync

  2. Cara Setup Rsync dengan SSH di UNIX/Linux (rsync tanpa password)

  3. Cara membedakan direktori melalui ssh

  1. Cara Mengunduh dan Mengunggah File melalui SSH

  2. Gunakan perangkat melalui SSH?

  3. Bagaimana saya bisa mengecualikan file secara default dengan rsync?

  1. Bagaimana Cara Selektif Membungkam Rsync?

  2. Cadangkan file Anda dengan rsync

  3. Bagaimana cara Setup Rsync tanpa kata sandi dengan SSH di UNIX / Linux?