GNU/Linux >> Linux Esercitazione >  >> Linux

Come copiare rapidamente un gran numero di file tra due server

Soluzione 1:

Consiglierei catrame. Quando gli alberi dei file sono già simili, rsync esegue molto bene. Tuttavia, poiché rsync eseguirà più passaggi di analisi su ciascun file e quindi copierà le modifiche, è molto più lento di tar per la copia iniziale. Questo comando probabilmente farà quello che vuoi. Copierà i file tra le macchine, oltre a preservare sia i permessi che le proprietà di utenti/gruppi.

tar -c /path/to/dir | ssh remote_server 'tar -xvf - -C /absolute/path/to/remotedir'

Secondo il commento di Mackintosh qui sotto, questo è il comando che useresti per rsync

rsync -avW -e ssh /path/to/dir/ remote_server:/path/to/remotedir

Soluzione 2:

Disco rigido esterno e consegna tramite corriere in giornata.

Soluzione 3:

Userei rsync.

Se li hai esportati tramite HTTP con elenchi di directory disponibili, puoi usare anche wget e l'argomento --mirror.

Stai già vedendo che HTTP è più veloce di SCP perché SCP sta crittografando tutto (e quindi colli di bottiglia sulla CPU). HTTP e rsync si muoveranno più velocemente perché non crittografano.

Ecco alcuni documenti sulla configurazione di rsync su Ubuntu:https://help.ubuntu.com/community/rsync

Quei documenti parlano del tunneling di rsync su SSH, ma se stai solo spostando i dati su una LAN privata non hai bisogno di SSH. (Presumo che tu sia su una LAN privata. Se ricevi 9-10 MB/sec su Internet, allora voglio sapere che tipo di connessioni hai!)

Ecco alcuni altri documenti di base che ti permetteranno di configurare un server rsync relativamente insicuro (senza dipendenza da SSH):http://transamrit.net/docs/rsync/

Soluzione 4:

Senza troppe discussioni, usa netcat, network swissarmy knife. Nessun sovraccarico di protocollo, stai copiando direttamente sul socket di rete.Esempio

srv1$ tar cfv - *mp3 | nc -w1 remote.server.net 4321

srv2$ nc -l -p 4321 |tar xfv -

Soluzione 5:

Con molti file se scegli rsync, cercherei di ottenere la versione 3 o successiva su entrambe le estremità . Il motivo è che una versione minore enumera ogni file prima che inizi il trasferimento. La nuova funzione si chiama ricorsione incrementale .

Un nuovo algoritmo di ricorsione incrementale viene ora utilizzato quando rsync comunica con un'altra versione 3.x. Questo avvia il trasferimento più rapidamente (prima che tutti i file siano stati trovati) e richiede molta meno memoria. Vedi l'opzione --recursive nella manpage per alcune restrizioni.


Linux
  1. Linux:come eliminare i file creati tra due volte?

  2. Come silenziare selettivamente Rsync?

  3. Come eliminare i file creati tra due volte?

  4. Come chiamare ripetutamente rsync finché i file non vengono trasferiti correttamente

  5. Come eseguire il backup dei file crontab -e?

Come spostare un gran numero di file in Linux

Come copiare un gran numero di file in Linux

Come sincronizzare automaticamente i file tra due server Linux

Come copiare file tra host e contenitore Docker

Come utilizzare Rsync per copiare/sincronizzare file tra server

Come condividere le risorse tra più server web?