ssh, scp stuff
General
Estoy haciendo un script para jalar los respaldos de un servidor hacia mi servidor de respaldos loca, si todos los archivos se enviaron correctamente entonces debo borrar los datos del servidor en producción, el problema aquí es saber cuándo se guardaron correctamente y cuándo no.. para ello usamos la variable $?
Ejemplo en bash:
#----------The script------------------------------
#Nos traemos todos los archivos del directorio backup hacia nuestro directorio local.
scp -r $USER@$WEBSERVER:/backup/ $BACKUP_LOCAL_DIR
#Consultando el manual de SCP tenemos que devuelte 0 si fue exitoso y mayor a 0 si ocurrio un error.
#El resultado se guarda en la variable $?
if [ $? != 0 ]; then
echo "Ocurrio un error, intenta de nuevo."
exit;
fi
#Si no ocurrio un error eliminamos, todos los archivos del directorio backup, come vemos estamos ejecutando el comando rm-RF por SSH
ssh $USER@$WEBSERVER rm -Rf /backup/*
echo "Backup completed"
Permalink: http://www.mononeurona.org/entries/view/rnstux/2108
Commentblogs:Una forma alternativa sería:
scp -r $USER@$WEBSERVER:/backup/ $BACKUP_LOCAL_DIR ||\\
echo "Ocurrio un error, intenta de nuevo." &&\\
exit;
ssh $USER@$WEBSERVER rm -Rf /backup/* &&\\
echo "Backup completed"
Y así en el primer caso se mostraria "Ocurrio un error, ..." si falla scp y luego como se mostraría el letrero sin error se ejecutaría exit.
Para el segundo comando lo mismo, en caso de que se elimine /backup/* sin errores se mostraría "Backup completed".
Los heroes aquí serían || y &&
http://mywiki.wooledge.org/BashGuide/TestsAndConditionals
PD: Estaba leyendo algunas prácticas recomendadas para bash y me acorde de tu post.
2010-03-11 06:11:06-06
Una forma alternativa sería:
scp -r $USER@$WEBSERVER:/backup/ $BACKUP_LOCAL_DIR ||\\
{echo "Ocurrio un error, intenta de nuevo."; exit;}
ssh $USER@$WEBSERVER rm -Rf /backup/* &&\\
echo "Backup completed"
Y así en el primer caso se mostraria "Ocurrio un error, ..." si falla scp y luego como se mostraría el letrero sin error se ejecutaría exit.
Para el segundo comando lo mismo, en caso de que se elimine /backup/* sin errores se mostraría "Backup completed".
Los heroes aquí serían || y &&
http://mywiki.wooledge.org/BashGuide/TestsAndConditionals
PD: Estaba leyendo algunas prácticas recomendadas para bash y me acorde de tu post.
2010-03-11 06:11:27-06










