[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Lanzar comandos secuencialmente



Tengo un script con el que trato de comprimir un gran número de carpetas en
una máquina-origen (desde donde lo lanzo), mover estos tar.gz por scp a otra
máquina-destino y descomprimirlos en esta máquina-destino. El problema es
que cuando lo ejecuto me lo hace bien sólo para la última carpeta del pipe,
para las otras me crea archivos tar.gz vacíos en el origen que no llega a
mover. ¿Alguien sabe por qué?

Este es el script.sh:

#!/bin/bash
echo COMPRIMIENDO ...
tar -cvzf $1.tar.gz $1
echo ENVIANDO TAR.GZ ...
scp ./$1.tar.gz usuario@10.0.0.100:/destino
echo ELIMINANDO TAR.GZ ORIGEN ...
rm -rf ./$1.tar.gz
echo DESCOMPRIMIENDO TAR.GZ DESTINO ...
ssh usuario@10.0.0.100 tar xvzf /destino/$1.tar.gz -C /destino/
echo ELIMINANDO TAR.GZ DESTINO ...
ssh usuario@10.0.0.100 rm -rf /destino/$1.tar.gz

Y este es el comando que ejecuto como ?usuario? (funciono con clave
pública/privada entre ambas máquinas) desde maquina-origen:

$script.sh carpeta1 |script.sh carpeta2 | script.sh carpeta3

Como digo, sólo me lo hace bien para ?carpeta3?, el resto no aparecen en
máquina-destino, aunque en maquina-origen aparecen carpeta1.tar.gz y
carpeta2.tar.gz con un par de Kbs, cuando cada carpeta ocupa cientos de Gbs.



Reply to: