Devo trasferire file da un server CentOS a un altro. Trasferirà file da 5 MB ogni 10 minuti circa. Non è necessaria la crittografia.
Cosa è stato facile per un rapido trasferimento di file?
C'è qualcosa di più semplice di ftp?
Grazie!
Devo trasferire file da un server CentOS a un altro. Trasferirà file da 5 MB ogni 10 minuti circa. Non è necessaria la crittografia.
Cosa è stato facile per un rapido trasferimento di file?
C'è qualcosa di più semplice di ftp?
Grazie!
Risposte:
rsync
Userei rsync prima di usare ftp o tftp.
Più opzioni e (nella mia esperienza) trasferimento più affidabile.
tar over ssh va bene, ma tar over TCP via netcat è il più basso possibile! Se questa è una cosa una tantum, provaci:
Sul ricevitore:
nc -l -p 8989 | tar x
Sul mittente:
tar cf - /source-path | nc (receiving host ip address) 8989
Se questo è qualcosa che farai regolarmente, probabilmente userò rsync.
Due persone hanno menzionato tar over ssh, ma non hanno detto come farlo. Per la cronaca, la procedura di base è eseguire:
tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'
Oppure, se si desidera iniziare i trasferimenti dall'estremità ricevente:
ssh remotehost 'cd /source && tar cf - files' | tar xvf -
Il vantaggio di farlo in questo modo rispetto alla soluzione netcat di Evan è che il tutto può essere avviato da un computer; non è necessario coordinare due invocazioni netcat. Se è necessario eseguirlo automaticamente, è possibile impostare una chiave ssh che consenta di effettuare connessioni senza passphrase e utilizzare quella chiave per queste connessioni.
ssh ha un'opzione -C per comprimere il suo flusso di dati, oppure puoi usare la capacità di compressione integrata di GNU tar:
tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'
Rsync è un'altra opzione, ma il suo punto di forza è nell'aggiornamento dei file che già esistono sul lato ricevente. Ho trovato che è più lento di scp o tar / ssh quando lo si utilizza per trasferire file che non esistono già dall'altra parte.
Vorrei usare scp
o tar
più ssh
, onestamente. La crittografia rallenta le cose, ma la facilità di installazione e utilizzo, l'affidabilità e (soggettivamente, ovviamente) la familiarità mi rendono disposto a prendere il colpo, a meno che non abbia davvero bisogno di quella velocità.
Puoi velocizzare il trasferimento ssh dicendogli di usare anche una cifra più veloce di quella predefinita. L'impostazione predefinita è di solito 3des
e di solito puoi farlo -c des
, quindi ovviamente sarà più veloce, ed -c blowfish
è rappresentato altrettanto velocemente, anche se non l'ho provato esattamente.
(Ai tempi di SSHv1, si poteva fare spesso -c none
, ma immagino che qualcuno abbia deciso che era un juju cattivo.)
Se devi passare attraverso scp / ssh, i miei esperimenti mostrano che la cifra più veloce abilitata di default in questi giorni è RC4. Si specifica la cifra tramite ' -c arcfour ' nel comando ssh / scp:
per copia iniziale:
scp -c arcfour -r foo/ desthost:/destdir
per aggiornamenti:
rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir
Rsync è una buona strada da percorrere perché se ti ritrovi a trasferire gli stessi file più di una volta, questo accelera la copia, come mostrato con questa citazione dalla pagina man.
rsync is a program that behaves in much the same way that rcp does, but
has many more options and uses the rsync remote-update protocol to
greatly speed up file transfers when the destination file is being
updated.
The rsync remote-update protocol allows rsync to transfer just the dif-
ferences between two sets of files across the network connection, using
an efficient checksum-search algorithm described in the technical
report that accompanies this package.
FTP è piuttosto semplice, ma un modo ancora più semplice potrebbe essere quello di creare una condivisione NFS su una macchina e montarla sull'altra. Quindi la copia dei file consisterà nel fare un cp da una directory all'altra.
Se vuoi la velocità puoi usare netcat e tar. Sarà più veloce di ssh, rsync o scp su una rete locale in cui la crittografia non è un problema. Google "netcat tar".
nc -l -p 7878 | tar -C /target/dir -xzf -
tar -cz /source/dir | nc DestinationServer 7878
Ciò ovviamente richiede che netcat sia effettivamente installato. Google "netcat tar" per maggiori informazioni.
Credo che tu abbia già risolto il tuo problema ma nel caso in cui il tuo ssh funzioni su un'altra porta (non sulla porta standard 22) puoi usare questo
rsync -avz --rsh = 'ssh -pXXXXX' / local / dir / root@192.168.1.2: / remote / dir
Nota: - sostituire XXXXX con il numero di porta - sostituire 192.16.1.2 con l'IP del server remoto corretto
https://www.npmjs.org/package/gist-cli
https://github.com/settings/applications#personal-access-tokens
o questo:
https://github.com/defunkt/gist
Usa il comando gist per caricare e scaricare