domingo, noviembre 14, 2010

Transferencia de ficheros en UNIX y Linux


Voy a comentar algunas cosas obvias, y otras que me han pasado a mí con HP-UX (podrían no ser problemas generales).

scp (secure copy):

Ejemplos de uso:

scp -p -r servidorA:/datos .
Copia el directorio /datos del servidorA al directorio actual del servidor donde estemos.

Ventajas:
  • Para la transferencia de datos utiliza ssh (protocolo seguro).
  • Puedes limitar el uso del ancho de banda (opción -i en hp-ux).
  • Tiene la opción -p muy útil para preservar permisos y fechas de creación, modificación, etc.
  • Con la opción -r (recursiva) se copiarían los subdirectorios del directorio indicado.

Inconvenientes:
  • Es un protocolo seguro, lo cual significa que hay un cifrado. Esto hará que sea más lento que los protocolos inseguros.
  • En HP-UX tiene un comportamiento imprevisto con los enlaces simbólicos. En lugar de copiar el enlace sin más, hace también la descarga del fichero apuntado por el enlace. Esto puede ser un verdadero problema si tenemos "accesos directos" a ficheros gigantes. Para solucionarlo, antes del scp podemos empaquetar el contenido por medio de tar (ver abajo).

¿Qué significa lento para mí?

Hoy he tenido que mover con scp 1 fichero de 35 Gb.
Ha tardado 1 hora 50 minutos (110 minutos).
Por lo tanto mover 1 Gb le lleva 3,14 minutos.
O sea, que la media ha sido de 5,31 Mb/sg.
Con otros ficheros de tamaño similar he obtenido medias de 8,6 Mb/sg y 10,4 Mb/sg

Aquí pongo para comparar los ratios de escritura en cinta según hp (www.hp.com/go/storagemedia/dds):

DDS1 de 1990: 366 Kb/sg
DDS2 de 1993: 1,4 Mb /sg
DDS3 de 1996: 3 Mb / sg
DDS4 de 1999: 2-6 Mb /sg
DAT72 de 2003: >6 Mb /sg
DAT160 de 2007: >10 Mb /sg
DAT 7th gen: > 16 Mb /sg
DAT 8th gen: > 32 Mb /sg

ftp:


Ejemplos de uso del ftp que viene en windows:

ftp servidor (o bien ejecutar ftp y luego open servidor).
comando binary: va a hacer la transferencia en modo binario.
comando ascii: va a hacer la transferencia en modo ascii.
cd directorio para moverse a través de los directorios del servidor.
mget ficheros para traer múltiples ficheros (con las opciones de *,?).
mput ficheros para llevar múltiples ficheros.
bye para salir.

Ventajas:
  • Es el de toda la vida. Disponible en todos los servidores del mundo.
  • Al no cifrar es más rápido que el scp.
Inconvenientes:
  • Totalmente inseguro. El usuario y contraseña "viajan" en claro.
  • Normalmente deshabilitado en los servidores.
Tiempos registrados (el propio ftp te da la información al terminar):

Fichero de 34301726720 bytes en 5133,76 segundos (6524,99 Kbytes/s).
Esto da 6.681.599,20 bytes/s
O lo que es lo mismo (dividiendo entre 1024): 6,525 Mb/s.

Otro caso:

Fichero de 41178882048 bytes en 5813,19 segundos (6917, 67 Kbytes/s).
Esto da 7083697,94 bytes/s
Lo cual es (dividiendo entre 1024): 6,918 Mb/s

Aviso: realmente para pasar a Mb/s habría que haber dividido otra vez entre 1024 en lugar de entre 1000.

Aviso2: estos tiempos son con la red y el servidor origen a pleno rendimiento (a diferencia de los tiempos del scp).

sftp (secure file transfer program)

Ventajas:

  • A diferencia del anterior, éste es un protocolo seguro.
  • Se puede utilizar en modo interactivo o también en modo batch (con la opción -b se indic a un fichero batch).
  • Se puede habilitar la compresión.

Inconvenientes:

  • Utiliza ssh por debajo. Esto supone que hay cifrado y por lo tanto la copia tardará más.

tar (tape file archiver):

Ejemplos de uso:

Para empaquetar a un fichero .tar:
tar -cvf fichero.tar directorio

Para desenpaquetar
tar -xvf fichero.tar

Este no es un protocolo de transferencia de ficheros sino un comando para guardar o restaurar ficheros en cintas. También permite guardar una selección de ficheros en otro fichero en lugar de en una cinta (empaqueta). Por lo tanto puede ser interesante para el paso de ficheros de un sistema a otro.

Inconvenientes:
  • Resulta que en HP-UX no va bien con ficheros largos (más de 2 Gb), lo cual es un serio problema.
gzip/gunzip

En lugar de empaquetar (tar), así podemos comprimir.

Para comprimir:

Es habitual primero empaquetar para conseguir un fichero.tar
Y luego comprimir ese fichero:

gzip fichero.tar
El resultado será fichero.tar.gz

Para descomprimir:

gunzip fichero.gz



nfs (Network File System):

Ejemplos de uso:

mount servidorFuente:/datos/directorio-compartido /directorio

Por medio de NFS un servidor puede ofrecer un file system a otro. Esta puede ser una forma de poner ficheros a disposición de un servidor.

Ventajas:
  • No hay una copia de ficheros de un servidor a otro, sino que un servidor accede al file system del otro.
  • El acceso se habilita rápidamente sin tener que esperar horas y horas hasta pasar los ficheros. El problema es que al procesar esos ficheros en el servidor que accede vía NFS hay un tráfico de red que va a hacer lento el procesamiento.
Saludos.

No hay comentarios: