GNU/Linux >> Belajar Linux >  >> Linux

Lanjutkan File yang Ditransfer Sebagian Melalui SSH Menggunakan Rsync

Bayangkan skenario ini. Anda menyalin beberapa file besar dari satu sistem ke sistem lain melalui SSH menggunakan scp memerintah. Tiba-tiba listrik padam, sehingga koneksi jaringan terputus dan proses penyalinan dihentikan di tengah jalan. Apa yang akan kamu lakukan? Mulai ulang proses penyalinan setelah listrik kembali online? Ya, itu berhasil. Namun, scp perintah tidak memiliki opsi resume, jadi itu hanya akan mulai menyalin file dari awal dan menimpa file yang ada. Ini adalah tugas yang sedikit mengganggu dan memakan waktu. Di sinilah Rsync utilitas datang membantu! Kami dapat dengan mudah melanjutkan file yang ditransfer sebagian melalui SSH menggunakan Rsync. Ini membantu Anda untuk melanjutkan proses penyalinan atau pengunduhan yang terputus di mana Anda tinggalkan.

Apa itu Rsync?

Bagi mereka yang bertanya-tanya, Rsync adalah utilitas penyalinan file yang cepat dan serbaguna yang dapat digunakan untuk menyalin dan mentransfer file atau folder ke dan dari sistem jarak jauh dan lokal. Ini menawarkan sejumlah besar opsi yang mengontrol setiap aspek perilakunya dan memungkinkan spesifikasi kumpulan file yang sangat fleksibel untuk disalin. Ini terkenal dengan algoritme transfer delta , yang mengurangi jumlah data yang dikirim melalui jaringan dengan hanya mengirimkan perbedaan antara file sumber dan file yang ada di tujuan. Rsync banyak digunakan untuk pencadangan dan pencerminan serta sebagai perintah penyalinan yang ditingkatkan untuk penggunaan sehari-hari.

Sama seperti scp , rsync juga dapat menyalin file melalui SSH. Jika Anda ingin mengunduh atau mentransfer file dan folder berukuran besar melalui SSH, saya sarankan Anda menggunakan utilitas rsync seperti yang dijelaskan di bawah ini.

Instal Rsync di Linux

Harap utilitas rsync harus dipasang di kedua sisi (yaitu sistem jarak jauh dan lokal) untuk melanjutkan file yang ditransfer sebagian. Rsync tersedia di repositori resmi sebagian besar distribusi Linux, sehingga Anda dapat menginstalnya menggunakan manajer paket default distribusi.

Di Linux Alpen , kita dapat menginstal Rsync seperti di bawah ini:

$ sudo apk add rsync

Di Linux Arch dan variannya, instal Rsync menggunakan perintah:

$ sudo pacman -S rsync

Di Debian , Ubuntu , Linux Mint :

$ sudo apt-get install rsync

Di Fedora , RHEL , CentOS , AlmaLinux dan Linux Rocky :

$ sudo dnf install rsync

Di SUSE/openSUSE :

$ sudo zypper install rsync

Lanjutkan sebagian file yang ditransfer menggunakan Rsync

Sekarang mari kita lihat sebuah contoh. Saya akan menyalin file ISO Ubuntu dari sistem lokal saya ke sistem jarak jauh menggunakan perintah berikut:

$ scp ubuntu.iso [email protected]:/home/sk/

Di sini,

  • sk adalah nama pengguna sistem jarak jauh saya
  • 192.168.225.22 adalah alamat IP dari mesin jarak jauh.
  • /home/sk/ adalah tujuan jarak jauh.

Sekarang, saya menghentikan proses penyalinan secara paksa dengan menekan CTRL+C .

Contoh keluaran:

[email protected]'s password: 
ubuntu-16.04-desktop-amd64.iso 26% 372MB 26.2MB/s 00:39 ETA^c

Seperti yang Anda lihat pada output di atas, saya menghentikan proses penyalinan ketika mencapai 33%.

Jika saya menjalankan kembali perintah di atas, itu hanya akan menimpa file yang ada. Dengan kata lain, proses penyalinan tidak akan dilanjutkan di tempat saya tinggalkan.

Untuk melanjutkan proses penyalinan untuk menyalin file ISO yang ditransfer sebagian, gunakan rsync perintah seperti yang ditunjukkan di bawah ini.

$ rsync -P -rsh=ssh ubuntu.iso [email protected]:/home/sk/

Contoh keluaran:

[email protected]'s password: 
sending incremental file list
ubuntu.iso
834.00M 100% 14.81MB/s 0:00:56 (xfr#1, to-chk=0/1)

Lihat? Sekarang, proses penyalinan dilanjutkan di tempat yang kita tinggalkan sebelumnya.

Anda juga dapat menggunakan "--partial " bukannya parameter "-P " seperti di bawah ini.

$ rsync --partial -rsh=ssh ubuntu.iso [email protected]:/home/sk/

Di sini, parameter "--partial " atau "-P " memberi tahu perintah rsync untuk menyimpan file yang diunduh sebagian dan melanjutkan prosesnya.

Periksa apakah file benar-benar disalin atau tidak ke sistem jarak jauh menggunakan perintah:

$ ssh [email protected] ls -lh
[email protected]'s password: 
total 835M
-rw-rw-r-- 1 sk sk 834M Jul 26 2019 ubuntu.iso

Seperti yang Anda lihat pada output di atas, file Ubuntu.iso disalin ke sistem jarak jauh dan ukurannya adalah 835MB.

Atau, kita juga dapat menggunakan perintah berikut untuk melanjutkan file yang ditransfer sebagian melalui SSH.

$ rsync -avP ubuntu.iso [email protected]:/home/sk/

Atau,

$ rsync -av --partial ubuntu.iso [email protected]:/home/sk/

Itu dia. Anda sekarang tahu cara melanjutkan file yang dibatalkan, terputus, dan diunduh sebagian menggunakan perintah rsync. Seperti yang Anda lihat, itu tidak terlalu sulit. Jika rsync diinstal pada kedua sistem, kita dapat dengan mudah melanjutkan proses penyalinan file melalui SSH seperti yang dijelaskan di atas.

Bacaan yang disarankan:

  • Contoh Perintah Linux Rsync Untuk Pemula
  • Cara Melanjutkan File yang Diunduh Sebagian Menggunakan Wget
  • Jalankan Perintah Pada Sistem Linux Jarak Jauh Melalui SSH

Linux
  1. Panduan Ansible:Kelola File menggunakan Ansible

  2. Lanjutkan File yang Diunduh Sebagian Menggunakan Wget Di Linux

  3. rsync hanya menyalin jenis file tertentu menggunakan opsi sertakan

  1. Menggunakan rsync untuk Menyinkronkan File

  2. Gunakan perangkat melalui SSH?

  3. Rsync melalui SSH tidak mendapatkan hadiah tty

  1. Bagaimana Cara Menyalin File Dari Jarak Jauh Melalui SSH Tanpa Memasukkan Kata Sandi Anda?

  2. Cara menyalin direktori secara rekursif menggunakan rsync sambil mengecualikan file tertentu

  3. Cara menyalin banyak file secara bersamaan menggunakan scp