Pregunta ¿La forma más fácil para una rápida transferencia de archivos entre servidores linux?


Necesito transferir archivos de un servidor CentOS a otro. Transfiere archivos de 5MB cada 10 minutos aproximadamente. No necesita cifrado.

¿Qué es fácil para una rápida transferencia de archivos?

¿Hay algo más simple que ftp?

¡Gracias!


16
2017-07-10 17:17


origen


Tengo fe en que el alquitrán sobre netcat triunfará ... je je ... serverfault.com/questions/18125/… - Evan Anderson
Como no necesito cifrado pero sí velocidad, prefiero rsync. - Alex L
Acabo de enterarme de que las transferencias http no tienen muchos gastos generales, por lo que quizás podría usar eso. - Alex L
No edite una respuesta en su pregunta, publíquela como una respuesta. Retrotraído. - HopelessN00b
para "rápido" ver también unix.stackexchange.com/questions/48399/… - rogerdpack


Respuestas:


rsync

Usaría rsync antes de usar ftp o tftp.

Más opciones y (en mi experiencia) transferencia más confiable.


25
2017-07-10 17:22



También encontré que rsync generalmente tiene un rendimiento más alto que cualquier otra cosa (scp, cifs, nfs) - Ophidian
¿Qué pasa con las transferencias de http? - Alex L
@Ophidian ¿Te refieres a usar rsync como demonio? De lo contrario, ¿cómo puede ser más rápido que scp, ya que ambos usan ssh y hay encriptación? - balki
@balki Sí, el demonio rsync. No es particularmente hablador, hace un buen trabajo al enviar datos desde el disco a la línea, y hace el menor trabajo necesario para completar la solicitud (por ejemplo, se aplica diffs para archivos de texto). - Ophidian


tar over ssh está bien, pero tar sobre TCP a través de netcat es lo más bajo que puedes conseguir. Si esto es algo de una sola vez, dale una oportunidad a esto:

En el receptor:

nc -l -p 8989 | tar x

En el remitente:

tar cf - /source-path | nc (receiving host ip address) 8989

Si esto es algo que harás regularmente, probablemente usaría rsync.


21
2017-07-10 17:44



+1 para netcat, la navaja suiza - chmeee
Lo mismo de ti por no leer a Evan. ¡Jajaja! En realidad no es una cosa del tiempo. Dijo que va a transferir archivos de 5 MB cada 10 minutos aproximadamente. Tal vez el envío a través del código Morse sería una buena alternativa? ;-) (nota: broma privada entre Evan y yo) - KPWINC


Dos personas han mencionado tar sobre ssh, pero no dijeron cómo hacerlo. Para el registro, el procedimiento básico es ejecutar:

tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'

O, si desea iniciar transferencias desde el extremo receptor:

ssh remotehost 'cd /source && tar cf - files' | tar xvf -

La ventaja de hacerlo de esta manera sobre la solución netcat de Evan es que todo se puede iniciar desde una computadora; no tienes que coordinar dos invocaciones netcat. Si necesita que esto se ejecute automáticamente, puede configurar una clave ssh que le permita hacer conexiones sin una frase de contraseña, y usar esa clave para estas conexiones.

ssh tiene una opción -C para comprimir su flujo de datos, o puede usar la capacidad de compresión integrada de GNU tar:

tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'

Rsync es otra opción, pero su fuerte es la actualización de archivos que ya existen en el extremo receptor. Descubrí que es más lento que scp o tar / ssh cuando lo uso para transferir archivos que aún no existen en el otro extremo.


8
2017-07-10 19:39



+1 ¿Qué quieres decir con que no todo el mundo sabe intuitivamente cómo hacer tar sobre ssh? Extraño. :) - chaos
tar, por sí mismo, no es confiable; no hay verificación de integridad; sin embargo, con SSH (TLS) se obtiene integridad debido a la capacidad de TLS para detectar cambios en los datos en vuelo. Rsync es una mejor opción y Rsync, ya que realizará una mejor comprobación de integridad sin cifrado; El OP declaró que el cifrado no era necesario. - Kilo
¿Qué comprobación de integridad necesita tar? Las capas TCP y ssh proporcionan un transporte de datos confiable. Si está afirmando que el tar mismo puede tener errores, debe tratar a rsync de la misma manera. De hecho, he tenido las transferencias rsync congeladas en mí debido a problemas de protocolo. No recuerdo que una tubería de alquitrán / untar haya hecho eso alguna vez. - Kenster


Yo uso scp o tar terminado sshhonestamente El cifrado ralentiza las cosas, pero la facilidad de configuración y uso, la confiabilidad y la familiaridad (subjetivamente, por supuesto) hacen que esté dispuesto a recibir el impacto, a menos que De Verdad Necesito esa velocidad.

También puede acelerar la transferencia ssh indicándole que utilice un cifrado más rápido que el predeterminado. El valor predeterminado es generalmente 3des y usualmente puedes hacer -c des, por lo que obviamente será más rápido, y -c blowfish también está representado como rápido, aunque no lo he probado con exactitud.

(En los días de SSHv1, a menudo se podía hacer -c none, pero supongo que alguien decidió que era mal juju.)


6
2017-07-10 17:39





Si tiene que pasar por scp / ssh, mis experimentos muestran que el cifrado más rápido habilitado de forma predeterminada en estos días es RC4. Usted especifica el cifrado a través de-c arcuatro'en su comando ssh / scp:

para la copia inicial:

  • scp -c arcfour -r foo/ desthost:/destdir

para actualizaciones:

  • rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir

4
2017-07-13 19:23





Rsync es una buena manera de hacerlo porque si se transfiere los mismos archivos más de una vez, se acelerará la copia, como se muestra en esta cita de la página del manual.

   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.

3
2017-07-10 17:28





FTP es bastante simple, pero una forma aún más simple puede ser crear un recurso compartido NFS en una máquina y montarlo en la otra. Luego, copiar los archivos consistirá en hacer un cp de un directorio a otro.


2
2017-07-10 17:39



Dependiendo de los requisitos. No usaría NFS en Internet, por ejemplo. - Kyle Hodgson
Buen punto. En ese caso, recomendaría rsync, ya que puede reanudarse donde se interrumpe si se interrumpe. También porque solo transfiere el delta entre la fuente y el destino. - Swoogan
La pregunta fue muy general, me gusta la soulution publicada por Swoogan, especialmente el autor mencionó que necesita la solución más simple y no requiere cifrado. - integratorIT