GNU/Linux >> Znalost Linux >  >> Linux

Obnovte částečně přenesené soubory přes SSH pomocí Rsync

Představte si tento scénář. Kopírujete některé velké soubory z jednoho systému do druhého přes SSH pomocí scp příkaz. Najednou je vypnuto napájení, takže síťové připojení je přerušeno a proces kopírování je ukončen uprostřed. Co bys dělal? Stačí restartovat proces kopírování, jakmile bude napájení opět online? Ano, funguje to. Nicméně scp příkaz nemá možnost obnovení, takže jednoduše začne kopírovat soubory od začátku a přepíše existující soubory. To je trochu otravný a časově náročný úkol. Zde je Rsync utilita přichází na pomoc! Můžeme snadno obnovit částečně přenesené soubory přes SSH pomocí Rsync. Pomůže vám obnovit přerušený proces kopírování nebo stahování tam, kde jste jej přerušili.

Co je Rsync?

Pro ty, kdo by se zajímali, Rsync je rychlý a všestranný nástroj pro kopírování souborů, který lze použít ke kopírování a přenosu souborů nebo složek do a ze vzdálených a místních systémů. Nabízí velké množství možností, které řídí každý aspekt jeho chování a umožňují velmi flexibilní specifikaci sady souborů, které mají být zkopírovány. Je známý svým algoritmem delta přenosu , která snižuje množství dat odesílaných přes síť tím, že odesílá pouze rozdíly mezi zdrojovými soubory a existujícími soubory v cíli. Rsync se široce používá pro zálohování a zrcadlení a jako vylepšený příkaz pro kopírování pro každodenní použití.

Stejně jako scp rsync může také kopírovat soubory přes SSH. V případě, že chcete stahovat nebo přenášet velké soubory a složky přes SSH, doporučuji vám použít nástroj rsync, jak je popsáno níže.

Instalovat Rsync v Linuxu

Prosím, nástroj rsync by měl být nainstalován na obou stranách (tj. vzdálené a místní systémy), aby bylo možné obnovit částečně přenesené soubory. Rsync je k dispozici v oficiálních repozitářích většiny distribucí Linuxu, takže jej můžete nainstalovat pomocí výchozího správce balíčků distribuce.

Na Alpine Linux , můžeme nainstalovat Rsync jako níže:

$ sudo apk add rsync

V systému Arch Linux a jeho variant, nainstalujte Rsync pomocí příkazu:

$ sudo pacman -S rsync

V Debianu , Ubuntu , Linux Mint :

$ sudo apt-get install rsync

Na Fedoře , RHEL , CentOS , AlmaLinux a Rocky Linux :

$ sudo dnf install rsync

Na SUSE/openSUSE :

$ sudo zypper install rsync

Obnovit částečně přenesené soubory pomocí Rsync

Nyní se podívejme na příklad. Chystám se zkopírovat soubor ISO Ubuntu z mého místního systému do vzdáleného systému pomocí následujícího příkazu:

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

Tady,

  • sk je uživatelské jméno mého vzdáleného systému
  • 192.168.225.22 je adresa IP vzdáleného počítače.
  • /home/sk/ je vzdálený cíl.

Nyní jsem proces kopírování násilně ukončil stisknutím CTRL+C .

Ukázkový výstup:

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

Jak vidíte na výše uvedeném výstupu, proces kopírování jsem ukončil, když dosáhl 33 %.

Pokud znovu spustím výše uvedený příkaz, jednoduše přepíše stávající soubor. Jinými slovy, proces kopírování nebude pokračovat tam, kde jsem ho přestal.

Chcete-li obnovit proces kopírování za účelem zkopírování částečně přeneseného souboru ISO, použijtersync příkaz, jak je znázorněno níže.

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

Ukázkový výstup:

[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)

Vidět? Nyní je proces kopírování obnoven tam, kde jsme jej dříve ukončili.

Můžete také použít "--partial " místo parametru "-P “ jako níže.

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

Zde jsou parametry "--partial “ nebo „-P " říká příkazu rsync, aby ponechal částečně stažený soubor a pokračoval v procesu.

Zkontrolujte, zda je soubor skutečně zkopírován do vzdáleného systému pomocí příkazu:

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

Jak vidíte ve výše uvedeném výstupu, soubor Ubuntu.iso je zkopírován do vzdáleného systému a jeho velikost je 835 MB.

Alternativně můžeme také použít následující příkazy k obnovení částečně přenesených souborů přes SSH.

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

Nebo,

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

A je to. Nyní víte, jak obnovit zrušené, přerušené a částečně stažené soubory pomocí příkazu rsync. Jak vidíte, není to tak těžké. Pokud je rsync nainstalován na obou systémech, můžeme snadno obnovit proces kopírování souborů přes SSH, jak je popsáno výše.

Doporučené čtení:

  • Příklady příkazů Linux Rsync pro začátečníky
  • Jak obnovit částečně stažený soubor pomocí Wget
  • Provádění příkazů na vzdálených systémech Linux prostřednictvím SSH

Linux
  1. Jak vzdáleně kopírovat soubory přes SSH bez zadání hesla?

  2. rsync kopíruje pouze určité typy souborů pomocí volby include

  3. Používat zařízení přes SSH?

  1. Ansible Guide:Správa souborů pomocí Ansible

  2. Soubory Rsync přes zprostředkujícího hostitele

  3. Rsync přes SSH nedostává žádný tty

  1. Obnovte částečně stažený soubor pomocí Wget v Linuxu

  2. Protokolovat pouze přenesené soubory pomocí Rsync?

  3. Použití rsync k synchronizaci souborů