martes, 30 de octubre de 2012

Aumentar tamaño de archivos de máquina virtual (VirtualBox) .vdi o .vhd

Para esto usamos vboxmanage, no hace falta instalar nada ya que viene incluido en la paquetería de VirtualBox y se utiliza de la siguiente forma:

  • vboxmanage modifyhd “ruta_del_disco_a_redimensionar” --resize “nuevo_tamaño_del_disco_en_MBytes”

Esto es si usamos el sistema operativo Linux, si usamos Windows tenemos que localizar en el directorio de instalación de VirtualBox el programa y lo ejecutas igual que en el anterior caso:

  • VBoxManage modifyhd “ruta_del_disco_a_redimensionar”--resize “nuevo_tamaño_del_disco_en_MBytes”

Cuando entres a la maquina virtual dirás esto no funciono porque no tengo asignado a la partición el tamaño indicado, para ello debes hacer lo siguiente:

  • Iniciar en la maquina virtual con un disco live para utilizar gparted o particion manager
  • Ejecutar el programa y hacer la ampliación
  • Reiniciar la maquina virtual y entrar al sistema virtualizado.


viernes, 21 de septiembre de 2012

Firefox 15 y Java 7

Un día trate de acceder a gmail y el sistema me indico que no tenia un navegador apropiado para utilizar gmail y debería actualizarlo, por eso me dispuse a realizar esta tarea, el sistema operativo que tenía instalado es Debian Squeeze, descarge el tar.gz desde la pagina de firefox y lo instale en de la siguiente forma:

Una vez descargado el archivo firefox-15.0.1.tar.bz2, se ejecuta:
  1. tar xjf firefox-15.0.tar.bz2
  2. Si tenias otra versión instalada en /opt debes borrarla primero, aunque no es necesario ya que puedes jugar con los nombres de los directorios
  3. mv firefox /opt/firefox15
  4. Si tenias otra version instalada de firefox debes borrar el ejecutable, aunque no es necesario puesto que jugaremos con los nombres de los archivos
  5. ln -s  /opt/firefox15/firefox /usr/bin/firefox15
  6. crea el enlace en el escritorio o menu y a disfrutar

Como firefox 15 te dira que java 6 esta reconocido como un programa que genera fallas debes instalar java 7 de la siguiente forma:

Una vez descargado el archivo  jre-7u7-linux-i586.tar.gz, se ejecuta:
  1. mkdir /usr/local/java
  2. tar xvzf jre-7u7-linux-i586.tar.gz -C /usr/local/java
  3. editamos el profile con vim /etc/profile y agregamos al final del archivo: JAVA_HOME=/usr/local/java/jdk1.7.0_07
    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
    JRE_HOME=/usr/local/java/jre1.7.0_07
    PATH=$PATH:$HOME/bin:$JRE_HOME/bin
    export JAVA_HOME
    export JRE_HOME
    export PATH
  4. update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jre1.7.0_07/bin/java" 1
  5. update-alternatives --set java /usr/local/java/jre1.7.0_07/bin/java
  6. comprobamos la versión con java -version
  7. para activar el java en firefox borras rm -r /etc/alternative/mozilla-javaplugin.so
  8. por ultimo creas un nuevo enlace ln -s /usr/local/java/jre1.7.0_07/lib/i386/libnpjp2.so /etc/alternatives/mozilla-javaplugin.so y reinicias el navegador
  9. ojo comprueba que este habilitado en los complementos-plugin, si no se ve el plugins entonces crea un enlace simbolico en el directorio de instalación de firefox ln -s /etc/alternatives/mozilla-javaplugin.so /usr/lib/mozilla/plugins/mozilla-javaplugin.so

Ahora si listo.

lunes, 14 de mayo de 2012

Metodología para cifrado de documentos

A continuación les paso la metodología para cifrado de documentos de
cualquier naturaleza, para ser pasados por correo, entrega de
documentos y que solo las partes  interesadas puedan leer, como prueba
de documentos válidos por delitos informáticos, etc, en fin, para
cualquier uso de seguridad de datos.

Cifrando un fichero en Linux

Para cifrar un único fichero, utiliza el comando gpg:

$ gpg -c nombre_de_archivo

Para cifrar el fichero mis_claves.ods, escribe el comando:

$ gpg -c mis_claves.ods

Salida:

Enter passphrase: 
Repeat passphrase:

Esto creará el fichero mis_claves.ods.gpg.

Opción:

    -c : Cifra con un cifrado simétrico.

NOTA: si se olvida la contraseña o passphrase, no será posible
descifrar el documento si utilizan un cifrado fuerte.

Descifrando el fichero

Para descifrar el fichero con el comando gpg:

$ gpg mis_claves.ods.gpg

Salida:

gpg mis_claves.ods.gpg gpg: CAST5 encrypted data Enter passphrase:

Descifra el fichero y escribe la salida al archivo salida.info.txt:

$ gpg mis_claves.ods.gpg –o salida.info.txt

Si la extensión del fichero es .asc, se trata de un fichero ASCII
cifrado y, si la extensión es .gpg es un binario cifrado.

viernes, 16 de marzo de 2012

Scripts para automatizar Backups

Todos conocen la importancia que tiene realizar respaldos (backups, copias de seguridad…) de los archivos importantes de manera periódica. Pero esta tarea puede llegar a resultar, en muchas ocasiones, una tarea engorrosa y pesada. Para ello he “escrito” (en parte obra mía y en parte de diversas fuentes de la red) este script que automatiza de cierta manera nuestros respaldos. Realmente lo que hace es empaquetar y comprimir, en el/los directorio(s) donde queremos almacenar nuestros respaldos, el archivo o carpeta que le indiquemos; borrando aquellas copias que tengan más de determinado tiempo.

En concreto realiza la copia en dos directorios, uno se encuentra en la carpeta /home/Backup y el otro es un dispositivo que se haya montado en /media/Backup. Para utilizarlo en nuestra máquina hay que cambiar las direcciones de DIRECTORIO_RESPALDO_1 y DIRECTORIO_RESPALDO_2, o eliminar una si no la necesitas (también hay que eliminar el respectivo fragmento que realiza el respaldo para ese directorio). También es recomendable editar las lineas:

find $DIRECTORIO_RESPALDO_1/`basename $1`* -mtime +186 -exec rm -r -f {} \;
find $DIRECTORIO_RESPALDO_2/`basename $1`* -mtime +62 -exec rm -r -f {} \;

Cambiando los números de la opción -mtime que indica los días mínimos que han de tener los respaldos antiguos a eliminar (ejemplo: -mtime +186 son los archivos con más de 6 meses de antigüedad). Si no se quieren eliminar los respaldos antiguos simplemente comenta o eliminar las lineas antes mencionadas. Para acabar, si el DIRECTORIO_RESPALDO_2 no es un dispositivo que se tenga que montar, es recomendable eliminar o comentar las lineas:

mount $DIRECTORIO_RESPALDO_2 >/dev/null
umount $DIRECTORIO_RESPALDO_2 >/dev/null

Para ejecutarlo:
# ./Script /directorio_a_respaldar

#!/bin/bash
# Script para automatizar respaldos (Backups)
### INICIALIZACIÓN DE VARIABLES ####
DIRECTORIO_RESPALDO_1=/home/Backup         # Directorio 1 donde se va a realizar el respaldo
DIRECTORIO_RESPALDO_2=/media/Backup        # Directorio 2 donde se va a realizar el respaldo
FECHA_ACTUAL=`date +%d-%m-%Y`               # Fecha actual con formato dd-mm-YYYY (ejem: 15-08-2008)
NOMBRE_ARCHIVO=`basename $1`[$FECHA_ACTUAL] # Nombre del archivo resultante del respaldo (ejem: Documentos[15-08-2008].tar.gz)
### CUERPO DEL SCRIPT ###
clear
# Comprobar si tiene permisos de root
if [ $UID -ne 0 ]; then
echo "Para poder realizar el respaldo necesita tener permisos de super usuario."
exit
# Comprobar si se ha pasado como parámetro el directorio/archivo a respaldar
elif [ $# -ne 1 ]; then
echo
echo "Modo de uso: ./`basename $0` {directorio}"
echo
echo "Sustituya {directorio} por el directorio a ser el backup"
echo
exit
# Comprovar si se tiene permiso de escritura en el directorio de respaldo 1
elif [ -w $DIRECTORIO_RESPALDO_1 ]; then
clear
echo "Se van a realizar copias de seguridad de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_1"
sleep 3
clear
echo "Iniciando el respaldo. La operación puede tardar, no desespere..."
# Eliminar archivos con mas de 186 días (seis meses) del directorio de respaldo 1
find $DIRECTORIO_RESPALDO_1/`basename $1`* -mtime +186 -exec rm -r -f {} \; 2>> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO-erros.log
# Inicio del log
echo "LOG DEL BACKUP DEL DIA `date +%d/%m/%Y`" >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.log
echo "Hora de inicio de backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.log
# Inicio del respaldo
tar -czvf $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.tar.gz $1 >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.log 2>> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO-erros.log
# Fin del respaldo
# Crear md5
md5sum $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.tar.gz >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO-md5.txt
# Finalización del log
echo "Hora de termino del backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.log
echo "El respaldo de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_1 ha finalizado con exito."
else
echo
echo "No tiene permiso de escritura en $DIRECTORIO_RESPALDO_1"
fi
# Montando medio de Backup
mount $DIRECTORIO_RESPALDO_2 >/dev/null
# Comprobar si se tiene permiso de escritura en el directorio de respaldo 2
if [ -w $DIRECTORIO_RESPALDO_2 ]; then
clear
echo "Se van a realizar copias de seguridad de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_2"
sleep 3
clear
echo "Iniciando el respaldo. La operación puede tardar, no desespere..."
# Eliminar archivos con mas de 62 dias (dos meses) del directorio de respaldo 2
find $DIRECTORIO_RESPALDO_2/`basename $1`* -mtime +62 -exec rm -r -f {} \;  2>> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO-erros.log
#Inicio del log
echo "LOG DEL BACKUP DEL DIA `date +%d/%m/%Y`" >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.log
echo "Hora de inicio de backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.log
# Inicio del respaldo
tar -czvf $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.tar.gz $1 >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.log 2>> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO-erros.log
# Fin del respaldo
# Crear md5
md5sum $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.tar.gz >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO-md5.txt
# Finalización del log
echo "Hora de termino del backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.log
echo "El respaldo de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_2 ha finalizado con éxito."
else
echo
echo "No tiene permiso de escritura en $DIRECTORIO_RESPALDO_2 o no se ha podido montar correctamente el dispositivo."
fi
# Desmontando medio de Backup
umount $DIRECTORIO_RESPALDO_2 >/dev/null
exit
### FIN DEL SCRIPT ###

MUY IMPORTANTE si no entiendes claramente como funciona este script no te arriesgues a utilizarlo, en su lugar utiliza este otro más sencillo y seguro.

Para ejecutarlo:
# ./Script /directorio_a_respaldar /directorio_donde_guardar_el_respaldo


#!/bin/bash
# Script para automatizar respaldos (Backups)
### INICIALIZACION DE VARIABLES ####
FECHA_ACTUAL=`date +%d-%m-%Y`               # Fecha actual con formato dd-mm-YYYY (ejem: 15-08-2008)
NOMBRE_ARCHIVO=`basename $1`[$FECHA_ACTUAL] # Nombre del archivo resultante del respaldo (ejem: Documentos[15-08-2008].tar.gz)
### CUERPO DEL SCRIPT ###
clear
# Comprovar si tiene permisos de root
if [ $UID -ne 0 ]; then
echo "Para poder realizar el respaldo necesita tener permisos de superusuario."
exit
# Comprovar si se ha pasado como parametro el directorio/archivo a respaldar
elif [ $# -ne 1 ]; then
echo
echo "Modo de uso: ./`basename $0` {diretorio_a_respaldar} {directorio_donde_respaldar}"
echo
exit
# Comprovando permisos de escritura
elif [ -w $2 ]; then
# Inicio del log
echo "LOG DEL BACKUP DEL DIA `date +%d/%m/%Y`" >> $2/$NOMBRE_ARCHIVO.log
echo "Hora de inicio de backup: `date +%H:%M:%S`" >> $2/$NOMBRE_ARCHIVO.log
# Inicio del respaldo
tar -czvf $2/$NOMBRE_ARCHIVO.tar.gz $1 >> $2/$NOMBRE_ARCHIVO.log 2>> $2/$NOMBRE_ARCHIVO-erros.log
# Fin del respaldo
# Crear md5
md5sum $2/$NOMBRE_ARCHIVO.tar.gz >> $2/$NOMBRE_ARCHIVO-md5.txt
# Finalizacion del log
echo "Hora de termino del backup: `date +%H:%M:%S`" >> $2/$NOMBRE_ARCHIVO.log
echo "El respaldo de $1 y todos sus contenidos en $2 ha finalizado con exito."
else
echo
echo "No tiene permiso de escritura en $2"
fi
### FIN DEL SCRIPT ###

martes, 21 de febrero de 2012

Crear un autorun para el pendrive o cdrom

Supongamos que el profesor o el jefe te asigna una tarea, la cual implica hacer una presentación, un vídeo, o archivo de música, que se ejecute desde las unidades antes mencionadas de forma automática, para ello tenemos dos opciones:

Crear dos archivos uno con el nombre de Autorun.inf y otro auto.bat.
El Autorun.inf debe contener lo siguiente:
[autorun]
ICON = icon.ico
OPEN = auto.bat

Nota: icon.ico es el nombre del icono que quieres que aparezca cuando se introduzca el cd, puedes cambiarle el nombre pero no lo extensión y en la pagina http://converticon.com conviertes una imagen normal a un icono.

El auto.bat debe contener lo siguiente:
@start algoritmo.pps
@exit

Nota: algoritmo.pps es el nombre del archivo a ejecutar.

Es solo colocando el Autorun.inf, debe contener lo siguiente:
[autorun]
ICON = icon.ico
OPEN = Start algoritmo.pps

Nota: algoritmo.pps es el nombre del archivo a ejecutar.

viernes, 13 de enero de 2012

Proxmox 1.9

Backup de una máquina virtual montada en Proxmox:

La copia de una máquina virtual implica un fichero de configuración, que se almacena en /etc/qemu-server/, y el/los fichero/s de disco duro (raw, qcow, qcow2, etc.), que estará almacenado en local (/var/lib/vz/images/) o en red mediante ISCSI o NFS.
A continuación se recopilan los comandos más interesantes:
Se realiza una copia de la máquina con identificador (VMID) y se almacena en un 'tar' en el directorio por defecto (/var/lib/vz/dump/).
vzdump (VMID)
Se realiza una copia de todas las máquinas y se almacenan, en un 'tar' cada una, en el directorio por defecto (/var/lib/vz/dump/).
vzdump --all
Se puede realizar la copia comprimida en 'tgz'.
vzdump --compress (VMID)
Se puede indicar en qué directorio almacenar la copia.
vzdump --dumpdir (DIR) (VMID)
Se puede indicar el número de copias permitidas en el mismo directorio (se eliminará la copia más antigua en caso de superar dicho número, que por defecto es 1).
vzdump --maxfiles (N) (VMID)
Se puede indicar en qué Storage (definido en Proxmox) se quiere almacenar la copia.
vzdump --storage (STORAGE_ID)
A la hora de comenzar el proceso de copia, si la máquina se encuentra en ejecución, se puede indicar qué hacer.
vzdump --stop (VMID) --) La máquina virtual se detiene.
vzdump --suspend (VMID) --) La máquina virtual se suspende
(opción por defecto).
vzdump --snapshot (VMID) --) La máquina virtual no se detiene
(copia al vuelo, sólo funciona con volúmenes LVM).

Restauración de una máquina virtual en Proxmox:

La restauración de una máquina virtual se realiza desde un empaquetado 'tar' o 'tgz'. El proceso consiste en restaurar el fichero de configuración de la máquina virtual en el directorio /etc/qemu-server/ y restaurar el/los discos duros virtuales de la máquina virtual en el Storage (definido en Proxmox) en el que se encontraran cuando se realizó el backup.
Este mismo proceso, con las opciones adecuadas, sirve para clonar una máquina, esto es, crear una máquina nueva a partir de una imagen base.
A continuación se recopilan los comandos más interesantes:
Se restaura la máquina desde el empaquetado (FICHERO) con el identificador (VMID) en el Storage desde el que se generó el backup.
qmrestore (FICHERO) (VMID)
Se restaura la máquina asignándole una dirección MAC distinta a la tarjeta de red (en caso de que la máquina la tenga definida) (usar cuando se quiere clonar una máquina).
qmrestore --unique (FICHERO) (VMID)
Se puede indicar en qué Storage (definido en Proxmox) restaurar la máquina virtual.
qmrestore --storage (STORAGE_ID) (FICHERO) (VMID)
Se puede realizar la restauración de una máquina virtual de manera secuencial, indicando el número de restauraciones a realizar. Cada restauración incrementará el (VMID) en una unidad.
qmrestore --repeat (N)

Ampliación del tamaño de un disco duro:

Para ampliar el tamaño de un disco duro para una máquina virtual es necesario realizar dos pasos:

Ampliar el tamaño del disco desde la visión de host:

En local:
- Hay que indicar la ruta a la imagen RAW del disco duro virtual (IMAGEN_DISCO) y el nuevo tamaño del disco expresado en megabytes (TAM).
dd if=/dev/zero of=(IMAGEN_DISCO) bs=1M count=0 seek=(TAM)
En LVM2:
- Hay que indicar la ruta del dispositivo LVM2 (LV_NAME) y el nuevo tamaño del disco expresado en megabytes (TAM).
lvresize -L (TAM) (LV_NAME)

Ampliar el tamaño del disco desde la visión de anfitrión:

Utilizar un programa de gestión de particiones como Partition Master (Windows) o Gparted (Linux) para ampliar la partición desde la máquina virtual.

Eliminación de dispositivo LVM2:

En Proxmox existe una deficiencia cuando se tienen configurados varios nodos en cluster. Cuando se crea un dispositivo en LVM2 desde alguno de los nodos, en el resto se actualiza y se genera dicho dispositivo. Sin embargo, cuando se elimina una máquina virtual, se eliminan todos sus discos pero solo del nodo desde el que se elimina la máquina. En el resto de nodos del cluster se mantiene el dispositivo, aunque éste ya no exista realmente. Esto puede producir incoherencias. Para ello se puede utilizar el siguiente comando para eliminar un dispositivo concreto, (DISPOSITIVO).
dmsetup remove (DISPOSITIVO)

Gestión de volúmenes con LVM2:

LVM2 (Logical Volume Manager) es una herramienta para linux para la gestión de volúmenes lógicos que introduce una capa de abstracción entre los discos físicos, las particiones y los sistemas de ficheros configurados.
Se puede mostrar información acerca de los discos del sistema, indicando cuáles están configurados con LVM2, así como cuántas particiones hay definidas.
lvmdiskscan
LVM2 funciona a tres niveles: volúmenes físicos (PV: physical volumes), grupos de volúmenes (VG: volume groups) y volúmenes lógicos (LV: logical volumes).
Para cada uno de los niveles hay aplicaciones concretas para su gestión (crear, redimensionar, eliminar, etc).
A continuación se recopilan los comandos más interesantes de cada nivel:

PV:

Se muestra información acerca de los volúmenes físicos. Cualquiera de los siguientes comandos muestra dicha información. pvdisplay muestra una información algo más extendida que los otros.
pvs pvscan pvdisplay
Se inicializa un volumen físico (alguna partición o el disco entero de un dispositivo físico), (PV_NAME), para que LVM2 pueda gestionarlo más adelante.
pvcreate (PV_NAME)
Se elimina un volumen físico, (PV_NAME), de manera que LVM2 ya no podrá gestionarlo.
pvremove (PV_NAME)
Se redimensiona un volumen físico, extendiendo o comprimiendo el área de dicho volumen hasta completar el área de la partición física del dispositivo (PV_NAME). Es decir, para redimensionar un volumen físico, se requiere la redimensión de la partición con otras herramientas.
pvresize (PV_NAME)

VG:

Se muestra información acerca de los grupos de volúmenes. Cualquiera de los siguientes comandos muestra dicha información. vgdisplay muestra una información algo más extendida que los otros.
vgs vgscan vgdisplay
Se activan los volúmenes lógicos que alberga un grupo de volúmenes concreto (VG_NAME), de manera que el kernel los detecta.
vgchange -aly (VG_NAME)
Se desactivan los volúmenes lógicos que alberga un grupo de volúmenes concreto (VG_NAME), de manera que el kernel deja de detectar cualquier volumen lógico.
vgchange -aln (VG_NAME)
Se crea un grupo de volúmenes lógicos, (VG_NAME), a partir de uno o varios volúmenes físicos inicializados, (PV_NAME).
vgcreate (VG_NAME) (PV_NAME) [PV_NAME...]
Se añade uno o varios volúmenes físicos inicializados, (PV_NAME).
vgextend (VG_NAME) (PV_NAME) [PV_NAME...]
Se elimina uno o varios volúmenes físicos, (PV_NAME), asociados a un grupo de volúmenes (VG_NAME).
vgreduce (VG_NAME) (PV_NAME) [PV_NAME...]
Se elimina el grupo de volúmenes (VG_NAME) y todos los volúmenes lógicos incluidos en éste.
vgremove (VG_NAME)
Se renombra el grupo de volúmenes (VG_NAME), dándole el nuevo nombre (VG_NAME_NEW).
vgrename (VG_NAME) (VG_NAME_NEW)

LV:

Se muestra información acerca de los volúmenes lógicos. Cualquiera de los siguientes comandos muestra dicha información. lvdisplay muestra una información algo más extendida que los otros.
lvs lvscan lvdisplay
Se activa el volumen lógico concreto (LV_NAME), de manera que el kernel lo detecta.
lvchange -aly (LV_NAME)
Se desactiva el volumen lógico concreto (LV_NAME), de manera que el kernel deja de detectarlo.
lvchange -aln (LV_NAME)
Se crea un volumen lógico, (LV_NAME), con un tamaño (LV_SIZE) en MB, contenido en el grupo de volúmenes (VG_NAME).
lvcreate -L (LV_SIZE) -n (LV_NAME) (VG_NAME)
Se establece el tamaño de un volumen lógico, (LV_NAME), al indicado, (LV_NEW_SIZE).
lvresize -L (LV_NEW_SIZE) (LV_NAME)
Se elimina el volumen lógico (LV_NAME).
lvremove (LV_NAME)
Se eliminan todos los volúmenes lógicos contenidos en el grupo de volúmenes lógicos (VG_NAME).
lvremove (VG_NAME)
Se renombra el volumen lógico (LV_NAME), dándole el nuevo nombre (LV_NAME_NEW).
lvrename (LV_NAME) (LV_NAME_NEW)

Análisis de rendimiento:

Para analizar el rendimiento del servidor se han utilizado tres aplicaciones diferentes además del servidor de monitorización Zabbix. Se muestra información acerca del consumo en tiempo real de la memoria y de la swap, además del uso de disco y de la cpu. Cualquiera de los siguientes comandos muestra información acerca del uso de disco y de la cpu. Únicamente iostat carece de información de memoria y swap. htop muestra una información más gráfica, mientras que iostat muestra más información relacionada con discos duros.
htop atop iostat
Se muestra la información completa de uso de los discos cada (N) segundos.
iostat (N)
Se muestra la información completa de uso de los discos de manera extendida.
iostat -x
Se muestra la información completa de uso de los discos indicados.
iostat [(DEVICE1) ...]

Herramientas personalizadas:

Clonación de máquinas virtuales:

Se realiza una copia de la máquina virtual (VMIDMaquinaOriginal) y se coloca en un directorio temporal (/var/lib/vz/vztmp). Se duplica dicha máquina hasta conseguir (NumTotalMaquinas) de máquinas virtuales totales. Por ultimo, se inician todas las máquinas duplicadas y la máquina original. Si no se indica el valor (NumTotalMaquinas), se asume un 2, es decir, se creará una única copia de la máquina original.
vmclon (VMIDMaquinaOriginal) [(NumTotalMaquinas)]

Backup de máquinas virtuales:

Se realiza una copia de seguridad de las máquinas virtuales comprendidas entre la máquina (MAQ_INICIO) y la máquina (MAQ_FIN), soportando (NUM) copias de seguridad totales de cada máquina, de manera que si se excede dicho número, las copias más antiguas se borrarán automáticamente. Además, las copias de seguridad existentes con más de (DIAS) días de antigüedad se borrarán automáticamente por estar obsoletas. La política de backup establecida es de almacenar todas las copias de seguridad en un mismo directorio, exceptuando las copias realizadas en domingo o lunes (noche del domingo al lunes), que se almacenarán en distinto directorio para que el backup corporativo las recoja.
backup -c (NUM) (DIAS) (MAQ_INICIO) (MAQ_FIN)
Se restaura la copia de seguridad (BACKUP) para la máquina (VMID). La máquina (VMID) será parada antes de restaurar la copia de seguridad y se arrancará cuando el proceso haya terminado. Si no se indica el parámetro (BACKUP), se muestra un listado de copias de seguridad disponibles para la máquina (VMID). Si no se indican ninguno de los dos parámetros, se muestra un listado de las máquinas disponibles sobre las que se puede restaurar una copia de seguridad.
vmbackup -r [(VMID) [(BACKUP)]]

Gestión de máquinas virtuales:

Se inician todas las máquinas virtuales comprendidas entre la (MAQ_INICIO) y la (MAQ_FIN).
vmmanagement start (MAQ_INICIO) [(MAQ_FIN)]
Se detienen de manera abrupta todas las máquinas virtuales comprendidas entre la (MAQ_INICIO) y la (MAQ_FIN).
vmmanagement stop (MAQ_INICIO) [(MAQ_FIN)]
Se apagan de manera segura todas las máquinas virtuales comprendidas entre la (MAQ_INICIO) y la (MAQ_FIN).
vmmanagement shutdown (MAQ_INICIO) [(MAQ_FIN)]
Se suspenden todas las máquinas virtuales comprendidas entre la (MAQ_INICIO) y la (MAQ_FIN).
vmmanagement suspend (MAQ_INICIO) [(MAQ_FIN)]
Se eliminan todas las máquinas virtuales comprendidas entre la (MAQ_INICIO) y la (MAQ_FIN).
vmmanagement destroy (MAQ_INICIO) [(MAQ_FIN)]

Limpieza de dispositivos LVM2:

Se limpia la referencia de los discos utilizados por la máquina (VMIDMaquina) si dicha máquina ya no existe (simplificación de lo explicado en el apartado Eliminación de dispositivo LVM2).
vmcleandisk (VMIDMaquina)

Backup de ficheros de configuración:

Se realizan copias de seguridad en el directorio /etc/qemu-server/(nombre_maquina) de los ficheros de configuración de las máquinas virtuales del otro servidor del cluster, soportando (NUM) copias de seguridad totales, de manera que si se excede dicho número, las copias más antiguas se borrarán automáticamente. Donde (nombre_maquina) es el nombre del servidor del que se realizarán las copias.
crossoverbackup (NUM)

Backup completo:

Ejecuta conjuntamente copia de seguridad de los ficheros de configuración y de máquinas virtuales a partir de ciertos parámetros establecidos globalmente en el script. Dichos parámetros son los siguientes:
- MAQUINA_INICIAL → Máquina inicial del rango sobre el que se realizarán las copias de seguridad.
- MAQUINA_FINAL → Máquina final del rango sobre el que se realizarán las copias de seguridad.
- NUMERO_DIAS → Número de días a partir de los cuales las copias antiguas están obsoletas y deben borrarse.
- NUMERO_COPIAS_CONF → Número de copias de seguridad soportadas de los ficheros de configuración.
- NUMERO_COPIAS_MAQUINAS → Número de copias de seguridad soportadas de las máquinas virtuales.
backup