lunes, 21 de diciembre de 2009

Consejos para hacer buenos scripts (y backups)

Hoy toca fusilar a W. Curtis Preston y su excelente "Backup & Recovery" dónde da cuatro grandes consejos para usar en scripts relacionados con backups (aunque también valen para otras cosas):
  • Chequear muchas, muchas veces. Controlar siempre el código de retorno de cualquier comando o programa que ejecutemos. Si puedes intenta solucionar el error.
  • Notificar una y mil veces. Notificar sobre cualquier cosa anormal que se produzca. Usar 'grep -v' para eliminar líneas de salida no deseadas (que tenemos claras cuales son) y no 'grep' sobre las líneas de salida que queremos notificar (no mandaríamos las líneas raras que a veces salen). Nunca asumir nada, sendmail no tiene porque funcionar así que mejor busca siempre robustez. Si no hay correo, usa el log y sino el error estandar.
  • Almacena la tabla de contenidos de cada volumen de backup que hagas. Si tu sistema de backup tiene un buen catálogo entonces lo que tienes que hacer es un buen backup adicional del backup.
  • Comprueba bien las salidas de ssh o rsh. "$ ssh remote-system do_stuff ; echo $?" devuelve la salida de ssh, no de "do_stuff". Usa algo como:
rsh apollo "ls -l /tmp/* ; echo \$?>/tmp/ls. success"
SUCCESS=` rsh apollo cat /tmp/ls. success ; rm /tmp/ls. success`
if [ $SUCCESS -eq 0 ] ; then
#everything worked
echo "Everything worked. "
else
echo "Something bad happened! "
fi

No hay comentarios: