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

miércoles, 27 de julio de 2011

XenSever - Backup con Snapshots

Este método permite realizar backups de tus máquinas virtuales en formato nativo de Citrix XenServer.

Básicamente el proceso es hacer un snapshot de cada maquina virtual especificada en el fichero de configuración (backup2.cfg) y exportarla a un filesystem del domain0, ese puede ser NFS, SMB, Local... Una vez exportada la maquina virtual la comprime usando gzip. Cada vez que se ejecuta el script comprueba que no haya maquinas más antiguas de siete días en el FS de destino.

Se compone de 3 ficheros:

-backup2.cfg #Fichero de configuración donde se define el disco/directorio de destino del backup y las maquinas virtuales que queremos hacer backup.

-backup2.sh #La shell que lanza el proceso, se puede poner en un cron.

-backup2.log #El log de la shell

Puedes descargarlos desde: https://github.com/fsmsystems/stuff/tree/master/XEN-Backup o mediante git.

miércoles, 27 de enero de 2010

Backup y Restore Base de datos bayes

Útil para migraciones y backup de lo que tiene aprendido el bayes de spamassassin.

Es muy importante que sea con el usuario que lanza MailScanner, Amavis, Spamd... y que ese tenga shell. Se puede activar bash momentaniamente en el fichero /etc/passwd

su postfix -c "sa-learn --siteconfigpath=/etc/MailScanner/spam.assassin.prefs.conf --backup > /tmp/sa.backup"


Restore
su postfix -c "sa-learn --siteconfigpath=/etc/
MailScanner/spam.assassin.prefs.conf --restore /tmp/sa.backup"

jueves, 10 de diciembre de 2009

Backup Novell Zenworks

zman admin-store-credential administrator
Para que no nos pida las credenciales del administrador para cada acción que vamos hacer

1) Certificado: zman cae /tmp/backup-cert
Este paso no es necesario hacerlo cada vez que se quiera hacer el backup. Lo mejor es tenerlo guardado en un lugar seguro.

2) Content Repo /var/opt/novell/zenworks/content-repo
Es un directorio cifrado por lo tanto depende directamente del certificado.

3) Base de datos:
zman database-backup /tmp/backup-zenworks-db
En este caso si es una base de datos sysbase local.

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"

martes, 14 de abril de 2009

Backup & Recovery MySQL -mysqldump

Backup
mysqldump db_name > backup-file.sql


Restore
mysql db_name < backup-file.sql

jueves, 26 de marzo de 2009

BBDD: Dump y Restore PostgreSQL

Hay veces que es necesario hacer un volcado de toda la información de un servidor a otro, o simplemente hacer un copia de seguridad total. Para ello en Postgres igual que en MySQL hay los "dumps" y se exporta y se importa de la siguiente manera.

Dump

pgsqldump=backupPSQL`date +%d%m%Y`.dump
su postgres -c "pg_dumpall > $pgsqldump"


Restore
psql -f infile postgres

lunes, 2 de marzo de 2009

Subversion backup and restore

  • Howto backup Subversion and move it to a new machine.
  • Back Up Your Data !
  • svnadmin dump repo and scp to other machine.
  • Do this for each repository you have.
svnadmin dump /path/to/reponame > /tmp/reponame.dump ; scp -rp /tmp/reponame.dump user@server.domain.com:/tmp/
  • On other machine install subversion
pacman -Sy subversion
  • Make sure you set svnserve in /etc/rc.conf
  • Edit the DAEMONS line so it starts on next boot.
DAEMONS=(syslog-ng hotplug !pcmcia network netfs crond sshd svnserve httpd)
  • Create the corrisponding repositories.
  • Do this for each repository you have.


  • Load svn dump into new repo on new machine.
  • Do this for each repository you have.
svnadmin load /path/to/reponame < /tmp/repo1.dump
  • Setting Permissions.. CRUCIAL
  • This is the most common mistake when moving a svn repo.
  • Do this for each repository you have.
chown -R svn:svnusers /path/to/reponame ; chmod -R g+w /path/to/reponame/db/
  • Sample Permissions:
bash-2.05b# ls -l | grep svn drwxrwxr-x 7 svn svnusers 512 Apr 27 15:06 reponame1 drwxrwxr-x 7 svn svnusers 512 Apr 27 15:06 reponame2 drwxrwxr-x 7 svn svnusers 512 Apr 27 15:06 reponame3 bash-2.05b# ls -l reponame1/ | egrep -i "db" drwxrwsr-x 2 svn svnusers 512 Apr 27 15:07 db bash-2.05b#
  • Ok these repos should be allset and ready to rock.. however using svn+ssh:// will not work..
  • Note: we have to have a wrapper written for svnserve..
  • PLEASE FOLLOW CLOSELY HERE
  • check your ENV like:
bash-2.05b# env | egrep "^PATH=" PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin bash-2.05b#
  • check where the svnserve binary is located:
bash-2.05b# which svnserve /usr/local/bin/svnserve bash-2.05b#
  • ok our wrapper is going to have to fall in PATH prior to this location.. /sbin is a good place seeing its our 1st exec path on the system as root.
  • create wrapper:
touch /sbin/svnserve ; chmod 755 /sbin/svnserve
  • now edit it to look like so:
bash-2.05b# cat /sbin/svnserve #!/bin/sh # wrapper script for svnserve umask 007 /usr/local/bin/svnserve -r /path/to "$@" bash-2.05b#
  • NOTE: see the -r /path/to ?? well this is what makes use of the svn co svn+ssh://server.domain.com:/reponame ( SEE THIS :/reponame ).. this sets root PATH.
  • you do not need to do: :/path/to/reponame.... this is the big trick here folks.
  • Start svnserve with new wrapper script like so:
/sbin/svnserve -d ( start daemon mode )
  • check it with ps:
bash-2.05b# ps auxww | grep svn root 66668 0.0 0.1 3608 1868 ?? Is 12:25AM 0:00.00 /usr/local/bin/svnserve -r /path/to -d bash-2.05b#
  • we can also check the perms for remote users like this:
cdowns:~ ~$ svn ls svn+ssh://server.domain.com:/reponame ++server.domain.com++ dev/ qa/ release/ cdowns:~ ~$
En pocas palabras...
svnadmin dump /usr/local/svn > /var/dump-svn20090915.dump