GNU/Linux >> Linux Esercitazione >  >> Linux

Il modo migliore per trasferire file su una LAN tra due computer Linux

In un ambiente Linux, sia per la sicurezza che per la facilità d'uso, ssh è la soluzione migliore. SSH, SSHFS, SCP e SFTP come elenchi sono solo servizi diversi basati sul protocollo SSH. SCP è molto facile da usare, funziona proprio come CP ma puoi fornire nomi di utenti e macchine nel percorso. Quindi, potremmo fare un CP come cp ~/music/ ~/newmusic/ , ma potremmo fare altrettanto facilmente scp ~/music/ [email protected]:~/newmusic per inviarlo al computer denominato host. Ecco fatto:non abbiamo bisogno di impostare nulla. Ti verrà richiesta la password dell'account sull'altra macchina se non hai impostato un certificato o qualche altra autenticazione (scp condivide queste impostazioni con ssh, ovviamente).

SFTP è uno strumento che semplifica l'esecuzione di molte operazioni su un file system remoto:funziona proprio come FTP, ma funziona tramite SSH, quindi è sicuro e richiede solo un server SSH. man sftp ti dirà tutto su come usarlo. Non uso SFTP solo per spostare una cartella tra due macchine, è più utile quando hai molte operazioni da fare, come se stai riordinando i file su un altro computer.

SSHFS estende semplicemente SFTP a un file system:ti consente di montare un host virtuale nel tuo file system, quindi le cose di rete avvengono in modo totalmente trasparente. SSHFS è per configurazioni semi-permanenti, non solo per un trasferimento di file una tantum. Ci vuole qualche sforzo in più per essere configurato, di cui puoi leggere sul sito web del progetto.

Se hai bisogno di lavorare in un ambiente con sistema operativo misto, Samba diventa la tua prossima migliore scommessa. Windows e OS X supportano Samba in modo completamente automatico, e anche Linux lo fa, anche se a volte è difficile da usare.


Il mio preferito per i casi in cui la sicurezza non ha importanza è netcat + tar:

Per inviare una directory, cd all'interno della directory di cui si desidera inviare il contenuto sul computer che esegue l'invio e fare:

tar -cz . | nc -q 10 -l -p 45454

Sul computer che riceve i contenuti, cd nel punto in cui vuoi che appaiano i contenuti e fai:

nc -w 10 $REMOTE_HOST 45454 | tar -xz

Sostituisci $REMOTE_HOST con ip / nome host del computer che esegue l'invio. Puoi anche usare una porta diversa invece di 45454 .

Quello che sta realmente accadendo qui è che il computer "ricevente" si connette al computer mittente sulla porta 45454 e riceve i contenuti tar'd e gzip'd della directory, e li passa direttamente a tar (e gzip) per estrarli in la directory corrente.

Esempio rapido (utilizzando localhost come host remoto)

Computer 1

[email protected]:~/nctest/a/mydir$ ls
file_a.txt  file_b.log
[email protected]:~/nctest/a/mydir$ tar -cz . | nc -q 10 -l -p 45454

Computer 2

[email protected]:~/nctest/b$ ls
[email protected]:~/nctest/b$ nc -w 10 localhost 45454 | tar -xz
[email protected]:~/nctest/b$ ls
file_a.txt  file_b.log

Per le mosse singole, si consiglia scp.

Ma se scopri che questa directory potrebbe funzionare e devi spostarla molte volte per mantenere aggiornata l'altra posizione, puoi usare rsync (con ssh).

Dato che rsync ha molti argomenti, di solito lo inserisco in una piccola shell, quindi lo capisco bene (ogni volta). L'idea è di inviare solo le cose che sono cambiate dall'ultima volta che è stato eseguito.

#!/bin/bash

user="nisse"
host="192.168.0.33"

echo "Sync: /home/media/music/"
rsync --archive --delete -v --progress -e "ssh -l $user " /home/media/music/ $host:/home/media/music/

Questo sposterà una directory chiamata "/home/media/music/" dal computer locale al pc chiamato 192.168.0.33, usando l'utente "nisse". Ed elimina qualsiasi cosa sulla destinazione che non esiste sul pc locale.


Linux
  1. Come trasferire file tra due computer utilizzando i comandi nc e pv

  2. Come configurare il server SAMBA e trasferire file tra Linux e Windows

  3. I migliori strumenti di trasferimento file su Linux

  4. Il modo migliore per trasferire file su una LAN tra due computer Linux

  5. Qual è il modo più veloce per combinare due o più file in Linux?

Trasferisci file e cartelle tra computer con Croc

Trasferisci file tra computer e dispositivi mobili scansionando i codici QR

Come sincronizzare automaticamente i file tra due server Linux

4 modi per trasferire file tra sistemi remoti e locali su SSH

Come trasferire facilmente file tra desktop Linux con Warp

Differenza negli spazi bianchi tra due file su Linux