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 la tardanza está tomando una eternidad ... Ejecuté el comando:
tar cvf imagesbackup.tar images
Y yo solo iba a analizarlo.
Avísame si hay una manera más rápida. Tengo acceso remoto / SSH a ambas máquinas.
file-transfer
scp
tar
Andrew Fashion
fuente
fuente
Respuestas:
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.
Cualquier cadena que siga 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 bien, puede extraer el archivo tar en el otro servidor directamente:
Tenga en cuenta la
-C
opción rara vez utilizada . Significa "cambiar a este directorio primero antes de hacer algo".O, tal vez desee "extraer" del servidor de destino:
Tenga en cuenta que la
<(cmd)
construcción es nueva para bash y no funciona en sistemas más antiguos. Ejecuta un programa y envía la salida a una tubería, y la sustituye en el comando como si fuera un archivo.Podría haber escrito fácilmente lo anterior de la siguiente manera:
O como sigue:
O bien, puede ahorrarse algo de pena y simplemente usar rsync:
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 como para mantener el ritmo: si comprimir 100 MB demora más de lo necesario para enviar 100 MB, entonces es más rápido enviarlo sin comprimir.
Alternativamente, es posible que desee considerar la canalización para 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) proporciona el mejor rendimiento general en la mayoría de los casos. Al igual que:
fuente
Me sentiría tentado a sincronizarlo conmigo mismo: hace la compresión y maneja bien la pérdida de enlaces.
fuente
Si solo los alquilas y nada más, esto perderá toneladas de tiempo con una ganancia de velocidad mínima.
Por lo tanto, simplemente tarar los archivos con los conmutadores cvf costará efectivamente el tiempo que lleva leer todas las imágenes de 55 GB y volver a escribirlas en el disco. (Efectivamente, se perderá aún más tiempo ya que habrá una sobrecarga considerable).
Aquí solo hay una ventaja: se reduce la sobrecarga para cargar muchos archivos. Puede obtener tiempos de transferencia más rápidos si comprime las imágenes (pero como creo que ya están en un formato comprimido, esto no será de mucha ayuda). Simplemente más pérdida de tiempo de computación.
La mayor desventaja de transferir un archivo de alquitrán enorme por cable es que si algo sale mal, podría significar que debe comenzar de nuevo.
Yo usaría de esa manera:
En el nuevo servidor
Y luego solo
diff
. Y dado que scp admite la compresión sobre la marcha, no hay necesidad de archivos separados.Editar
Mantendré la información MD5 ya que fue útil para el OP. Pero un comentario me golpeó con una nueva visión. Así que un poco de búsqueda proporcionó esta información útil. Tenga en cuenta que el tema aquí es SFTP, no directamente SCP .
fuente
Además de la sugerencia md5sum de Pacey, usaría lo siguiente:
En el destino:
nc -w5 -l -p 4567 | tar -xvf -
Luego en la fuente:
tar -cvf - /path/to/source/ | nc -w5 destinationserver 4567
Todavía es un tar / untar, y no hay cifrado, pero es directo al otro servidor. Comience a ambos en tándem (
-w5
le da 5 segundos de gracia) y vea cómo se va. Si el ancho de banda es escaso, agregue -z al alquitrán en ambos extremos.fuente
Un punto: no todos los hosts tienen rsync y es posible que los hosts tengan diferentes versiones de tar. Por esta razón, uno podría recomendar como primer puerto de escala el uso de cpio, que a menudo se descuida.
Puede cpio sobre ssh para hacer una replicación ad-hoc de estructuras de archivos / directorios entre hosts. De esta manera usted tiene un control más fino sobre lo que se envía, ya que necesita "alimentar" a cpio, nom-nom. También es más compatible con argumentos, cpio no cambia mucho: este es un punto importante si está cuidando múltiples hosts en un entorno heterogéneo.
Ejemplo de copia / exportación / inicio y subdirección a host remoto:
Lo anterior copiaría el contenido de / export / home y cualquier subdirección a / export / home en el host remoto.
Espero que esto ayude.
fuente
Si tiene acceso ssh, tiene acceso rsync.
o
Si recibe un error como "error rsync: algunos archivos no se pudieron transferir (código 23) en main.c (977) [remitente = 2.6.9]", verifique su usuario y grupos entre los servidores; Es posible que tenga una falta de coincidencia.
Use la opción rsync "-z" si desea que rsync comprima la transferencia. Esta opción usará más CPU pero menos ancho de banda, así que tenga en cuenta eso.
Hay una opción "--progress" que le dará un porcentaje transferido, lo cual es bastante bueno si le gusta ese tipo de cosas.
fuente
¿Están en una red compartida en lugar de necesitar internet para transferir archivos? NFS o FTP pueden ser mucho más rápidos que los gastos generales de SCP, aunque perderá el cifrado durante la transferencia.
fuente
O siempre puedes usar tubos de alquitrán:
'j' = bzip2, puede usar 'z' para gzip o --lzma si su tar lo admite.
fuente