documentos:administracion:respaldos_por_email

Respaldando por e-mail

Requiere un servidor de correo local que pueda enviar correo a la cuenta de destino en forma normal.

 apt-get install biabam sharutils file
Description-en: bash attachment mailer
  A tool that is used for mailing attachments from the commandline.
  It is similar to using Mutt to send attachments on the commandline,
  but without the overhead of a complete email client.

http://mmj.dk/biabam/

En caso de ser pocos los archivos a respaldar se puede usar una variable en lugar de un archivo externo. Las lineas a cambiar serían:

  RESPALDAR=( /etc/resolv.conf /etc/ppp /etc/default /etc/network/interfaces )
  cp -r --preserve --parents ${RESPALDAR[@]:0} $DIRDEST

Script para respaldo de muchos archivos

#!/bin/bash
#
# respaldo y envio por e-mail
 
# En mismo directorio respaldar.txt para lista archivos, uno por linea
if [ -h $0 ]; then
   RESPARCHIVO=`dirname $(readlink $0)`/respaldar.txt;
else
   RESPARCHIVO=`dirname $0`/respaldar.txt;
fi
if [ ! -f $RESPARCHIVO ]; then
   echo "Archivo $RESPARCHIVO no encontrado" | /usr/bin/mail -s "$HOSTNAME Error" $TO; exit 1
fi
 
TO="rootway@email-gmail.com"
 
DATE=$(date +%Y%m%d-%H%M)
DIRTMP=$RANDOM
DIRDEST=/tmp/$DIRTMP/$HOSTNAME-$DATE
 
mkdir -p $DIRDEST
 
dpkg --get-selections > $DIRDEST/dpkg-selections
for RESPALDAR in $(cat $RESPARCHIVO); do
   cp -r --preserve --parents $RESPALDAR $DIRDEST
done
cd $DIRDEST
tar czf /tmp/$DIRTMP/$HOSTNAME-$DATE.tgz .
 
if [ -x /usr/bin/biabam ]; then
   echo "Adjunto archivo respaldo $HOSTNAME de fecha $DATE" | /usr/bin/biabam /tmp/$DIRTMP/$HOSTNAME-$DATE.tgz \
       -s "RESPALDO $HOSTNAME del $DATE" $TO
else
   echo "No existe el utilitario biabam, instale el paquete" | /usr/bin/mail -s "$HOSTNAME Error" $TO
fi
 
rm -R /tmp/$DIRTMP
exit 0

En caso de que el archivo creado supere los 8M es posible que el correo generado quede demasiado grande para ser enviado. En esos casos hay que usar multiples volúmenes y varios archivos, con rar ó tar -M

En el mismo directorio un archivo con el listado de archivos o carpetas a respaldar:

/etc/resolv.conf 
/etc/ppp 
/etc/default 
/etc/network/interfaces

Colocar en /etc/cron.daily con el comando:

ln -s /usr/local/sbin/respaldar.sh /etc/cron.daily/respaldar
for i in .ade .adp .bat .chm .cmd .com .cpl .exe .hta .ins .isp .jse .lib .mde .msc .msp .mst .pif .scr .sct .shb .sys .vb .vbe .vbs .vxd .wsc .wsf .wsh; do find /etc -name "*$i"; done
  • documentos/administracion/respaldos_por_email.txt
  • Última modificación: 2014/12/08 01:28
  • por 127.0.0.1