Public feed #725303

Anonymous

public text v1 · immutable
Raw Edit
·published 2007-10-04 08:55 UTC
rendered paste body
#!/usr/local/bin/bash

################################
# script para backups de MySQL #
################################

if [ $UID -gt 0 ]
then
  echo "Solo root puede ejecutar este script"
  exit 1
fi

MYSQLDIR='/var/db/mysql'
DESTDIR='/backups/mysql'
MYSQLDUMP=`which mysqldump`
DUMPOPTS="-u user -p passwd -Q -c"
BASENAME=`which basename`
BZIP=`which bzip2`
DATE=`which date`
CHMOD=`which chmod`
TIMEFORMAT="%E"

if [ ! -d $DESTDIR ]
then
  mkdir -p $DESTDIR
  echo "El directorio destino $DESTDIR no existia y ha sido creado"
fi

time {
echo "Iniciando Backups: `$DATE '+%d/%b/%Y %H:%M:%S'`"
for i in $MYSQLDIR/*
do
  time {
    if [ -d $i ]
    then
      FECHA=`$DATE +%d-%b-%Y`
      BBDD=`$BASENAME $i`
      # comprobamos si ya existe la copia y si existe la borramos
      [ -f ${DESTDIR}/${BBDD}_${FECHA}.sql ] && rm -f ${DESTDIR}/${BBDD}_${FECHA}.sql
      [ -f ${DESTDIR}/${BBDD}_${FECHA}.sql.bz2 ] && rm -f ${DESTDIR}/${BBDD}_${FECHA}.sql.bz2
      echo -n " -> Haciendo copia de la base de datos $BBDD..."
      $MYSQLDUMP $DUMPOPTS $BBDD >${DESTDIR}/${BBDD}_${FECHA}.sql
      $BZIP ${DESTDIR}/${BBDD}_${FECHA}.sql
      $CHMOD 400 ${DESTDIR}/${BBDD}_${FECHA}.sql.bz2
                echo -n "[ ok ] ->"
    fi
  }
done
echo -en "* Borrando backups antiguos..."
find ${DESTDIR} -mtime '+3' -exec rm -f {} \;
echo "[ ok ]"
echo "Proceso acabado: `$DATE '+%d/%b/%Y %H:%M:%S'`"
echo -en "\nTiempo empleado: "
}