Mostrando entradas con la etiqueta servicios. Mostrar todas las entradas
Mostrando entradas con la etiqueta servicios. Mostrar todas las entradas

viernes, 5 de junio de 2009

Script Backup Servicios OpenLDAP, BIND, CYRUS, Configs...

Buscando como se hace una copia de seguridad de cada servicio, hice el siguiente script que monta un arbol de directorios bajo el directorio /backups con cada uno de los servicios:

/backups/infbcn01-fecha -> DNS ETC IMAP LDAP

* DNS: se guardan las zonas master & slave y la config del servicio
* ETC: se guarda todo el directorio /etc
* IMAP: se guardan todos los buzones, bds de cyrus y config
* LDAP: Extrae un ldif con todo el contenido del árbol

No es un script óptimo en sentido de espacio ya que ni si comprime ni distingue incrementalidad o diferencialidad. Pero funciona.


#!/bin/bash
###BACKUP infbcn01 -infmaster

B_DIR=/backups
DEST=$B_DIR/infbcn01-`date +%d%m%Y`
OLD_BK=/backups2
ldiff=$DEST/LDAP/backupMasterLDAP.ldif
BIND_DIR=/var/lib/named
CONF_ETC=/etc
MASTER_BIND_DIR=$BIND_DIR/master
SLAVE_BIND_DIR=$BIND_DIR/slave
B_CYR_VAR_SPOOL=$DEST/IMAP/SPOOL/VAR
CYR_VAR_SPOOL=/var/spool/imap
CYR_SRV_SPOOL=/srv/imap/user
B_CYR_SRV_SPOOL=$DEST/IMAP/SPOOL/SRV
CYR_LIB=/var/lib/imap
B_CYR_LIB=$DEST/IMAP/LIB
MBOXLIST=mailboxdb`date +%d%m%Y`.dump

mv $B_DIR/* $OLD_BK/
rm -fr $B_DIR/*

#Arbre de directoris
mkdir $DEST > /dev/null 2>&1
mkdir -p $DEST/LDAP > /dev/null 2>&1
mkdir -p $DEST/DNS > /dev/null 2>&1
mkdir -p $DEST/DNS/master > /dev/null 2>&1
mkdir -p $DEST/DNS/slave > /dev/null 2>&1
mkdir -p $DEST/ETC > /dev/null 2>&1
mkdir -p $DEST/IMAP > /dev/null 2>&1
mkdir -p $DEST/IMAP/SPOOL/VAR > /dev/null 2>&1
mkdir -p $B_CYR_LIB
mkdir -p $B_CYR_SRV_SPOOL

#LDAP
slapcat > $ldiff

#DNS
cp -rvp $MASTER_BIND_DIR/* $DEST/DNS/master/
cp -rvp $SLAVE_BIND_DIR/* $DEST/DNS/slave/

#CONFIGS
tar -cjf $DEST/ETC/etc.tar.bz2 $CONF_ETC

#CYRUS
rsync -avz --delete $CYR_LIB root@localhost:$B_CYR_LIB

#CYRUS MAILBOXES
rsync -avz --delete $CYR_VAR_SPOOL root@localhost:$B_CYR_VAR_SPOOL
rsync -avz --delete $CYR_SRV_SPOOL root@localhost:$B_CYR_SRV_SPOOL
su cyrus -c "/usr/lib/cyrus/bin/ctl_mboxlist -d > $DEST/IMAP/$mboxlist"

Sincronizar correo CYRUS-IMAP por usuario (rsync)

En fases de migración de servidores de correo cyrus, es probable encontrase con que tenemos el nuevo servidor listo para ser utilizado pero que por motivos de seguridad, burocracia, etc... nos veamos obligados a tener el servidor de producción y el nuevo servidor practicamente parado. Es posible, que no nos interese, hacer un rsync de TODO el servidor de producción y que solo nos interese ir migrando buzones de algunos usuarios en concreto. Para eso hice este script.

se ejecuta:
./syncmailuser.sh nombre.apellido

Entonces mediante rsync copia del servidor en producción los ficheros del user en /var/lib/imap/user.. y luego tambien mediante rsync sincroniza el buzon tanto si esta en /srv/imap (suse) como si esta en /var/spool/imap.

Ahi va el script:

#!/bin/bash
USER=$1
IN_SRV=/mnt/server_act/srvspool/user
IN_VAR=/mnt/server_act/spool
IN_LIB=/mnt/server_act/lib/user
USERS=user.lst

USER2=`echo $USER sed -e 's,\.,\^,g'`
PATH1=$IN_VAR/user/$USER2
PATH2=$IN_SRV/$USER2
echo $PATH1
echo $PATH2


#Primera lletra per al dir
WORD=`echo $USER head -c 1`
echo "Sincronitzant $IN_LIB/$WORD/$USER2 /var/lib/imap/user/$WORD/"
rsync -avz --delete $IN_LIB/$WORD/$USER2* root@localhost:/var/lib/imap/user/$WORD/
su cyrus -c "/usr/lib/cyrus/bin/ctl_cyrusdb -r"
echo "Buscant ubicacio srv o var"
if [ -d $PATH1 ] ; then
echo "no esta en el srv"
rsync -avz --delete $IN_VAR/user/$USER2 root@localhost:/var/spool/imap/user/
fi
if [ -d $PATH2 ] ; then
echo "esta en srv"
rsync -avz --delete $IN_SRV/$USER2 root@localhost:/srv/imap/user/
fi

sábado, 25 de abril de 2009

Chkconfig en Debian/ubuntu..?? = update-rc.d

Para añadir el servicio en los runlevels que trae por defecto.
update-rc.d defaults

Para borrarlos

update-rc.d -f servicio remove