Necesito transferir archivos de un servidor CentOS a otro. Transferirá archivos de 5 MB aproximadamente cada 10 minutos. No necesita encriptación.
¿Qué es fácil para la transferencia rápida de archivos?
¿Hay algo más simple que ftp?
¡Gracias!
Necesito transferir archivos de un servidor CentOS a otro. Transferirá archivos de 5 MB aproximadamente cada 10 minutos. No necesita encriptación.
¿Qué es fácil para la transferencia rápida de archivos?
¿Hay algo más simple que ftp?
¡Gracias!
Respuestas:
rsync
Usaría rsync antes de usar ftp o tftp.
Más opciones y (en mi experiencia) una transferencia más confiable.
tar over ssh está bien, ¡pero tar over TCP a través de netcat es tan bajo como puede obtener! Si esto es una cosa de una sola vez, intente 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 vas a hacer regularmente, probablemente usaría rsync.
Dos personas han mencionado alquitrán 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 tiene que coordinar dos invocaciones de 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 incorporada 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. He encontrado 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.
Lo usaría scp
o tar
más ssh
, honestamente. El cifrado ralentiza las cosas, pero la facilidad de configuración y uso, la confiabilidad y (subjetivamente, por supuesto) la familiaridad me hacen estar dispuesto a recibir el golpe, a menos que realmente necesite esa velocidad.
Puede acelerar la transferencia ssh diciéndole que use un cifrado más rápido que el predeterminado, también. El valor predeterminado generalmente es 3des
y usted puede hacerlo -c des
, por lo que obviamente será más rápido y también -c blowfish
se representa 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 un mal juju).
Si tiene que pasar por scp / ssh, mis experimentos muestran que el cifrado más rápido habilitado por defecto en estos días es RC4. Usted especifica el cifrado a través de ' -c arcfour ' en su comando ssh / scp:
para copia inicial:
scp -c arcfour -r foo/ desthost:/destdir
para actualizaciones:
rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir
Rsync es un buen camino a seguir porque si te encuentras transfiriendo los mismos archivos más de una vez, acelerará la copia, como se muestra con 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.
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.
Si quieres velocidad, puedes usar netcat y tar. Será más rápido que ssh, rsync o scp en una red local donde el cifrado no es una preocupación. Google "netcat tar".
nc -l -p 7878 | tar -C /target/dir -xzf -
tar -cz /source/dir | nc DestinationServer 7878
Obviamente, esto requiere que netcat esté realmente instalado. Google "netcat tar" para más información.
Creo que ya resolvió su problema, pero en caso de que su ssh funcione en otro puerto (no en el puerto estándar 22), puede usar esto
rsync -avz --rsh = 'ssh -pXXXXX' / local / dir / root@192.168.1.2: / remote / dir
Nota: - reemplace XXXXX con su número de puerto - reemplace 192.16.1.2 con la IP correcta del servidor remoto
https://www.npmjs.org/package/gist-cli
https://github.com/settings/applications#personal-access-tokens
o este:
https://github.com/defunkt/gist
Use el comando gist para cargar y descargar