GNU/Linux >> Linux Esercitazione >  >> Linux

Riprendi i file parzialmente trasferiti su SSH utilizzando Rsync

Immagina questo scenario. Stai copiando alcuni file di grandi dimensioni da un sistema all'altro tramite SSH usando scp comando. Improvvisamente l'alimentazione si interrompe, quindi la connessione di rete viene interrotta e il processo di copia viene interrotto a metà. Cosa faresti? Riavviare il processo di copia una volta che l'alimentazione è tornata online? Sì, funziona. Tuttavia, il scp il comando non ha l'opzione di ripristino, quindi inizierà semplicemente a copiare i file dall'inizio e sovrascriverà i file esistenti. Questo è un compito un po 'fastidioso e che richiede tempo. Qui è dove Rsync l'utilità viene in aiuto! Possiamo facilmente riprendere i file parzialmente trasferiti su SSH usando Rsync. Ti aiuta a riprendere la copia interrotta o il processo di download da dove l'avevi interrotto.

Cos'è Rsync?

Per coloro che si chiedono, Rsync è un'utilità di copia file veloce e versatile che può essere utilizzata per copiare e trasferire file o cartelle da e verso sistemi remoti e locali. Offre un gran numero di opzioni che controllano ogni aspetto del suo comportamento e consentono di copiare specifiche molto flessibili dell'insieme di file. È famoso per il suo algoritmo di trasferimento delta , che riduce la quantità di dati inviati sulla rete inviando solo le differenze tra i file di origine e i file esistenti nella destinazione. Rsync è ampiamente utilizzato per backup e mirroring e come comando di copia migliorato per l'uso quotidiano.

Proprio come scp , rsync può anche copiare file su SSH. Nel caso in cui desideri scaricare o trasferire file e cartelle di grandi dimensioni su SSH, ti consiglio di utilizzare l'utilità rsync come descritto di seguito.

Installa Rsync in Linux

Si prega di installare l'utilità rsync su entrambi i lati (ovvero sistemi remoti e locali) per riprendere i file parzialmente trasferiti. Rsync è disponibile nei repository ufficiali della maggior parte delle distribuzioni Linux, quindi puoi installarlo utilizzando il gestore di pacchetti predefinito della distribuzione.

Su Linux Alpine , possiamo installare Rsync come di seguito:

$ sudo apk add rsync

Su Arch Linux e le sue varianti, installa Rsync usando il comando:

$ sudo pacman -S rsync

Su Debian , Ubuntu , Linux Mint :

$ sudo apt-get install rsync

Su Fedora , RHEL , CentOS , AlmaLinux e Rocky Linux :

$ sudo dnf install rsync

Su SUSE/openSUSE :

$ sudo zypper install rsync

Riprendi i file parzialmente trasferiti utilizzando Rsync

Vediamo ora un esempio. Copierò il file ISO di Ubuntu dal mio sistema locale a un sistema remoto usando il seguente comando:

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

Ecco,

  • sk è il nome utente del mio sistema remoto
  • 192.168.225.22 è l'indirizzo IP della macchina remota.
  • /home/sk/ è la destinazione remota.

Ora, ho terminato forzatamente il processo di copia premendo CTRL+C .

Risultato di esempio:

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

Come puoi vedere nell'output sopra, ho terminato il processo di copia quando ha raggiunto il 33%.

Se eseguo nuovamente il comando precedente, sovrascriverà semplicemente il file esistente. In altre parole, il processo di copia non riprenderà da dove l'avevo interrotto.

Per riprendere il processo di copia per copiare il file ISO parzialmente trasferito, utilizza rsync comando come mostrato di seguito.

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

Risultato di esempio:

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

Vedere? Ora, il processo di copia viene ripreso da dove l'avevamo interrotto prima.

Puoi anche usare "--partial " invece del parametro "-P " come sotto.

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

Qui, i parametri "--partial " o "-P " dice al comando rsync di conservare il file parzialmente scaricato e riprendere il processo.

Controlla se il file è stato davvero copiato o meno sul sistema remoto usando il comando:

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

Come puoi vedere nell'output sopra, il file Ubuntu.iso viene copiato sul sistema remoto e la sua dimensione è 835 MB.

In alternativa, possiamo utilizzare anche i seguenti comandi per riprendere i file parzialmente trasferiti su SSH.

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

Oppure,

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

Questo è tutto. Ora sai come riprendere i file cancellati, interrotti e parzialmente scaricati usando il comando rsync. Come puoi vedere, non è così difficile. Se rsync è installato su entrambi i sistemi, possiamo facilmente riprendere il processo di copia dei file su SSH come descritto sopra.

Lettura consigliata:

  • Esempi di comandi Linux Rsync per principianti
  • Come riprendere il file scaricato parzialmente utilizzando Wget
  • Esegui comandi su sistemi Linux remoti tramite SSH

Linux
  1. Registrazione solo di file trasferiti con Rsync?

  2. Come copiare in remoto i file su SSH senza inserire la password?

  3. Copia i file con SCP e Rsync

  4. rsync copia solo su determinati tipi di file utilizzando l'opzione include

  5. Come copiare più file contemporaneamente usando scp

Come trasferire file con Rsync su SSH

Come trasferire file con Rsync su SSH

Riprendi il file parzialmente scaricato utilizzando Wget in Linux

Come eseguire il backup di file e directory utilizzando Rsync in Linux

Come utilizzare il comando rsync per copiare i dati localmente e su SSH

Come copiare in remoto file su SSH senza inserire una password