file-transfer – La forma más rápida de transferir 55 GB de imágenes a un nuevo servidor

Pregunta:

Actualmente tengo dos servidores CentOS. Necesito saber cómo y cuál sería la forma más rápida de "tar" en el directorio de imágenes y SCP.

¿Es esa la forma más rápida que acabo de sugerir, porque tarring está tardando una eternidad … Ejecuté el comando:

tar cvf imagesbackup.tar images

E iba a terminarlo.

Avísame si hay una forma más rápida. Tengo acceso remoto / SSH a ambas máquinas.

Respuesta:

En lugar de usar tar para escribir en su disco local, puede escribir directamente en el servidor remoto a través de la red usando ssh.

server1$ tar -zc ./path | ssh server2 "cat > ~/file.tar.gz"

Cualquier cadena que siga a su comando "ssh" se ejecutará en el servidor remoto en lugar del inicio de sesión interactivo. Puede canalizar la entrada / salida hacia y desde esos comandos remotos a través de SSH como si fueran locales. Poner el comando entre comillas evita cualquier confusión, especialmente cuando se usa la redirección.

O puede extraer el archivo tar en el otro servidor directamente:

server1$ tar -zc ./path | ssh server2 "tar -zx -C /destination"

Tenga en cuenta la opción -C rara vez se utiliza. Significa "primero cambie a este directorio antes de hacer nada".

O tal vez desee "extraer" del servidor de destino:

server2$ tar -zx -C /destination < <(ssh server1 "tar -zc -C /srcdir ./path")

Tenga en cuenta que la construcción <(cmd) es nueva en bash y no funciona en sistemas más antiguos. Ejecuta un programa y envía la salida a una tubería, y sustituye esa tubería en el comando como si fuera un archivo.

Podría haber escrito fácilmente lo anterior de la siguiente manera:

server2$ tar -zx -C /destination -f <(ssh server1 "tar -zc -C /srcdir ./path")

O como sigue:

server2$ ssh server1 "tar -zc -C /srcdir ./path" | tar -zx -C /destination

O puede ahorrarse un poco de dolor y simplemente usar rsync:

server1$ rsync -az ./path server2:/destination/

Finalmente, recuerde que comprimir los datos antes de la transferencia reducirá su ancho de banda, pero en una conexión muy rápida, puede hacer que la operación tome más tiempo . Esto se debe a que es posible que su computadora no pueda comprimir lo suficientemente rápido para mantener el ritmo: si comprimir 100 MB tarda más de lo que se necesitaría para enviar 100 MB, entonces es más rápido enviarlo sin comprimir.

Alternativamente, es posible que desee considerar la posibilidad de aplicar una canalización a gzip usted mismo (en lugar de usar la opción -z) para que pueda especificar un nivel de compresión. Según mi experiencia, en conexiones de red rápidas con datos comprimibles, el uso de gzip en el nivel 2 o 3 (el valor predeterminado es 6) brinda el mejor rendimiento general en la mayoría de los casos. Al igual que:

server1$ tar -c ./path | gzip -2 | ssh server2 "cat > ~/file.tar.gz"

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım