Programando una tarea ghettoVCB en Cronjobs para VMware ESXi

La tarea de configurar una tarea cron para sistemas ESX no es muy diferente a los demás sistemas Linux, pero en ESXi hay que tener en cuanta que un reinicio del Host va a provocar que se pierda la tarea y no vuelva a ejecutarse.

Una vez  descargado script de http://communities.vmware.com/docs/DOC-8760 , lo único que tenemos que hacer es un upload a un datastore de VMware en el que queramos alojar el script ghettoVCB.

Para la versión 5.1 o posterior la cosa cambia. Puedes encontrar las modificaciones, aqui.

Para bajar el putty podeis ir aquí.

Ejecutamos Putty, y le ponemos la IP del ESXi donde vamos a conectarnos, usuario y contraseña.

Vamos a suponer que:

1.- /vmfs/volumes/datastore2/script, será el sitio donde pondremos el script ghettoVCB.sh y el archivo “vm”  donde especificaremos las máquinas que queremos copiar

2.- /vmfs/volumes/datastore2/backup, será la carpeta donde pondremos las copias de seguridad

3.- Y lo más importante. Que tenemos añadido el Datastore en el ESX.

Vamos a programar el cron :

# vi /var/spool/cron/crontabs/root

Añadimos al final del archivo lo siguiente:

00 01 * * * /vmfs/volumes/datastore2/backup/ghettoVCB.sh -f /vmfs/volumes/datastore2/backup/machines -c /vmfs/volumes/datastore2/backup/

No voy a entrar tampoco sobre cómo se configura el cron ni que formato tiene. Para eso ya hay otra entrada (que todavía no está, pero que tengo en mente…)

Con ésta línea, se ejecutará el backup todos los días a la 1 de la mañana.

Para variar, salimos grabando del comando vi con ESC y tecleamos

:wq!

Eliminaremos la anterior programación de CRONJOBS de la siguiente manera:

~ # kill $(cat /var/run/crond.pid)

~ # busybox crond

Como decía antes, el reiniciar el ESX se pierden las tareas que no sean propias del ESX, por lo que tenemos que añadir una serie de entradas en el rc.local para que no se olvide de ellas y las “reintegre” en el cron.

Para ello, editamos el rc.local mediante:

# vi /etc/rc.local

Y añadimos el final del fichero las 3 entradas necesarias. La primera para parar el cron, la segunda con la propia tarea y su programación, y en tercer lugar la ejecución del servicio cron. Éstas tres líneas os las pongo en negrita.

#! /bin/ash
export PATH=/sbin:/bin

log() {
echo “$1”
logger init “$1”
}

#execute all service retgistered in /etc/rc.local.d
if [ -d /etc/rc.local.d ]; then
for filename in `find /etc/rc.local.d/ | sort`
do
if [ -f $filename ] && [ -x $filename ]; then
log “running $filename”
$filename
fi
done
fi

/bin/kill $(cat /var/run/crond.pid)
/bin/echo “0 21 * * * /vmfs/volumes/datastore2/backup/ghettoVCB.sh -f /vmfs/volumes/datastore2/backup/machines > /vmfs/volumes/datastore3/logs/ghettoVCB-backup-\$(date +\\%s).log” >> /var/spool/cron/crontabs/root
/bin/busybox crond

Como siempre, salimos grabando con

:wq!

Para asegurarnos que la tarea se ejecuta sin problemas, ejecutamos el comando:

# /sbin/auto-backup.sh

config implicitly loaded
local.tgz
etc/vmware/vmkiscsid/vmkiscsid.db
etc/dropbear/dropbear_dss_host_key
etc/dropbear/dropbear_rsa_host_key
etc/opt/vmware/vpxa/vpxa.cfg
etc/opt/vmware/vpxa/dasConfig.xml
etc/sysconfig/network
etc/vmware/hostd/authorization.xml
etc/vmware/hostd/hostsvc.xml
etc/vmware/hostd/pools.xml
etc/vmware/hostd/vmAutoStart.xml
etc/vmware/hostd/vmInventory.xml
etc/vmware/hostd/proxy.xml
etc/vmware/ssl/rui.crt
etc/vmware/ssl/rui.key
etc/vmware/vmkiscsid/initiatorname.iscsi
etc/vmware/vmkiscsid/iscsid.conf
etc/vmware/vmware.lic
etc/vmware/config
etc/vmware/dvsdata.db
etc/vmware/esx.conf
etc/vmware/license.cfg
etc/vmware/locker.conf
etc/vmware/snmp.xml
etc/group
etc/hosts
etc/inetd.conf
etc/rc.local
etc/chkconfig.db
etc/ntp.conf
etc/passwd
etc/random-seed
etc/resolv.conf
etc/shadow
etc/sfcb/repository/root/interop/cim_indicationfilter.idx
etc/sfcb/repository/root/interop/cim_indicationhandlercimxml.idx
etc/sfcb/repository/root/interop/cim_listenerdestinationcimxml.idx
etc/sfcb/repository/root/interop/cim_indicationsubscription.idx
Binary files /etc/vmware/dvsdata.db and /tmp/auto-backup.31345.dir/etc/vmware/dvsdata.db differ
config implicitly loaded
Saving current state in /bootbank
Clock updated.
Time: 20:40:36   Date: 08/14/2009   UTC

Y ya está configurado cronjobs para que cuando se reinicie nuestro host VMware ESXi, se puedan efectuar las copias de seguridad con el script ghettoVCB

:wq

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s