J'ai fais des scripts pour la création de snapshot automatique ou encore des sauvegardes automatique. Voici un petit script pour la suppression de snapshot.
Il se base sur un fichier nommé ListDelSnap et supprimera l'ensemble des snapshots présents.

1. Créer le fichier ListDelSnap

vi ListDelSnap

Indiquer le nom des machines virtuelles sous la forme suivante :

VM01
VM02
VM03

Sauvegarder et quitter gràce à ":wq".

 

2. Créer le script

vi snapSupp.sh

copier le script :

export VMWARE_CMD=/bin/vim-cmd
${VMWARE_CMD} vmsvc/getallvms | sed 's/[[:blank:]]\{3,\}/   /g' | awk -F'   ' '{print "\""$1"\";\""$2"\";\""$3"\""}' |  sed 's/\] /\]\";\"/g' | sed '1,1d' > /tmp/vms_list
while read line
do
echo "VM_NAME: $line"
# get VM_ID
${VMWARE_CMD} vmsvc/getallvms | sed 's/[[:blank:]]{3,}/ /g' | awk -F' ' '{}' | sed 's/] /]";"/g' | sed '1,1d'
export VM_ID=`grep -E ""${line}"" /tmp/vms_list | awk -F ";" '{print $1}' | sed 's/"//g'`
echo "VM_ID: $VM_ID"
${VMWARE_CMD} vmsvc/snapshot.removeall $VM_ID
echo "--------------------"
done < ListDelSnap

Sauvegarder et quitter gràce à ":wq".


3. Rendre le script exécutable

chmod +x snapSupp.sh


4. Créer une tache planifiée

Pour automatiser l’execution des scripts, il existe sous linux « Cron » qui est l’equivalent des taches planifiées sous Windows. Sous Esxi, le fichier de configuration se trouve « /var/spool/cron/crontabs/root ». J’ai rajouté deux lignes à la suite indiquant : Executer le script « snapshot.sh » en tenant compte du fichier « listSnapshot » du Lundi au Vendredi à 22h01

0 20 * * 1-4 /vmfs/volumes/4d2aed1f-7a700542-ecbc-00237d9db922/snapSupp.sh


Pour que le fichier de configuration cron soit pris en compte, il faut redémarrer le service avec les commandes suivantes :

Kill $(cat /vaar/run/crond.pid)

Busybox crond 
Attention, lors du prochain redémarrage, le fichier de configuration cron sera réinitialisée. Pour éviter de perdre la configuration, j’ai rajouté dans le script de demarrage du serveur quatre lignes qui rajoutera automatiquement les lignes de configuration dans le fichier cron et redemarrera le service :

/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 20 * * 1-4 /vmfs/volumes/4d2aed1f-7a700542-ecbc-00237d9db922/snapSupp.sh" >> /var/spool/cron/crontabs/root
/bin/busybox crond

 

A bientôt,
Romain