Inicio > Sin categoría > Trucos en UNIX: ¿Como copiar archivos inteligentemente entre dos máquinas?

Trucos en UNIX: ¿Como copiar archivos inteligentemente entre dos máquinas?

Jueves, 20 de Enero de 2005

Supongamos que uste tiene el siguiente problema (por cierto, esta fué una pregunta en una entrevista de trabajo):

  1. Tiene que respaldar el directorio hogar de sus usuarios y para ello va utilizar otro disco duro que está en otra máquina.
  2. Usted quiere ver el contenido de los directorios de una vez, no quiere andar descomprimiendo archivos
  3. La otra máquina no tiene mucho espacio libre adicional, por lo que guardar una copia comprimida y una descomprimida no es una opción…
  4. La máquina comparte cuentas (ids) usando NIS

¿Suena peludo? no tenga miedo ya que usando tar, ssh y ‘pipes’ en Bash podemos hacer el truco. Con tar vamos a crear el archivo el cual va a conservar la permisología y el propietario de los archivos de manera fácil y con SSH vamos a hacer la transferencia por la red.

El comando es tan sencillo que cabe en una línea:

[josevnz@localhost tmp]$ tar -czf – My*.rpm |ssh user@XXX ‘(cd /tmp; tar -xzvf – )’

user@XXX’s password:

MySQL-client-4.0.21-0.i386.rpm

MySQL-devel-4.0.21-0.i386.rpm

MySQL-server-4.0.21-0.i386.rpm

MySQL-shared-4.0.21-0.i386.rpm

[josevnz@localhost tmp]$

He resaltado en colores el comando a utilizar; En verde está como creamos el archivo con tar (fijense el ‘-’ lo cual significa que tar debe mandar los contenidos a STDOUT), en azul está la con la máquina XXX como el usuario ‘user’, y en rojo está la parte final de el truco, ya que creamos un ’subshell’ en el cual primero nos cambiamos al directorio en donde queremos colocar los contenidos para luego desempaquetar el contenido.

Este truco me ha sido TAN útil en todos estos años que me extraña que no lo haya compartido antes :)

Recuerde una cosa; Yo siempre antes de correrlo utilizo ‘tar -tzvf -‘ en vez de ‘tar -xzvf – ‘ sólo para verificar que estoy empaquetando lo que realmente quiero salvar en el servidor remoto.

Será hasta la próxima entonces.

Sin categoría

  1. bureado
    Jueves, 20 de Enero de 2005 a las 06:49 | #1

    scp archivo1 usuario@backup archivo2

  1. Jueves, 19 de Febrero de 2009 a las 21:24 | #1