Archivo etiqueta crontab
Shell Script para hacer copias de seguridad de nuestras bases de datos con ncftpput.
Por admin - Administración, Linux, MySQL - Lunes, 15 junio 2009
Pues ya estoy aquí de nuevo para escribir un shell script que realiza una copia de seguridad de nuestras Bases de Datos y mediante ncftpput las enviamos a nuestro servidor FTP.
# DATOS
SERVIDOR=GENTOO-VPS
FECHA=$(date +"%m-%d-%Y") # mm-dd-yyyy
EMAIL=su@email
ASUNTO="Backup SQL"
TMP=/home/backup/tmp
# DATOS BD
BD_USUARIO=root
BD_CLAVE=*******
# DATOS FTP
NCFTP="/usr/bin/ncftpput"
FTP=ftp.dominio.com
FTP_USUARIO=user
FTP_CLAVE=******
FTP_DESTINO="./servidores/$SERVIDOR/MySQL/"
for BD in `mysql -u$BD_USUARIO -p$BD_CLAVE -e "show databases" -B -N`
do
mysqldump -u$BD_USUARIO -p$BD_CLAVE $BD > $TMP/$BD-$FECHA.sql
$NCFTP -m -u $FTP_USUARIO -p $FTP_CLAVE $FTP $FTP_DESTINO/$BD/ $TMP/$BD-$FECHA.sql
rm -f $TMP/$BD-$FECHA.sql
done
mail -s "$ASUNTO - $FECHA - $SERVIDOR" $EMAIL
Para optimizar la tarea podemos incluirla en nuestro crontab e incluimos la siguiente linea con la programación de la tarea y donde está ubicado nuestro script. Se ejecutará a las 2 de la madrugada todos los días:
crontab -e 0 2 * * * /home/backup/backup-bd-diaria.sh
Monitorizando nuestras cuentas de correo y envio de alertas a nuestro email.
Por admin - Administración, Linux, Qmail - Martes, 9 junio 2009
He creado este pequeño shell script que nos permitirá monitorizar todas las cuentas de correo de nuestros dominios. Para ello solo debemos indicarle unos pequeños parámetros y los límites en los que deseamos que nos envíe un reporte con una alerta.
# DATOS
FECHA=$(date +"%m-%d-%Y")
SERVIDOR=$(/usr/bin/hostname)
MAIL=/home/vpopmail/domains
REPORTE=/home/reporte.txt
EMAIL=su@correo.com
USUARIO=vpopmail # usuario de las cuentas de correo
ALERTA_DOMINIO=100 # espacio en mb
ALERTA_CUENTA=50 # espacio en mb
echo "Fecha: $FECHA" >>$REPORTE
echo "Limite dominio: $ALERTA_DOMINIO mb" >>$REPORTE
echo "Limite cuenta correo: $ALERTA_CUENTA mb" >>$REPORTE
echo "----------------------------------------------------" >>$REPORTE
for DOMINIO in `ls -l $MAIL | grep $USUARIO | awk {'print $9'}`
do
USO_DOMINIO=`du -sm $MAIL/$DOMINIO | awk {'print $1'}`
TOTAL=$[TOTAL+=$USO_DOMINIO]
if [ $USO_DOMINIO -ge $ALERTA_DOMINIO ]; then
echo "* $DOMINIO $USO_DOMINIO mb" >>$REPORTE
fi
for CUENTA in `ls -l $MAIL/$DOMINIO | awk {'print $9'}`
do
USO_CUENTA=`du -sm $MAIL/$DOMINIO/$CUENTA | awk {'print $1'}`
if [ $USO_CUENTA -ge $ALERTA_CUENTA ]; then
echo "$CUENTA@$DOMINIO $USO_CUENTA mb" >>$REPORTE
fi
done
done
echo "---------------------------------------------------" >>$REPORTE
echo "Total Ocupado: $TOTAL mb" >>$REPORTE
mail -s "Alerta Mail - $SERVIDOR - $FECHA" $EMAIL <$REPORTE
rm -f $REPORTE
* Este shell script ha sido probado en Gentoo y Fedora.
Por último solo debemos incluirlo en nuestro crontab para que se ejecute diariamente. En Gentoo es relativamente sencillo por lo que le podemos indicar que lo ejecute diariamente.
crontab -e # incluimos la siguiente linea en nuestro contab. @daily /home/scripts/monitor-correo.sh # por último le damos permisos de ejecución. chmod 744 /home/scripts/monitor-correo.sh