Ce dernier article présente deux scripts de sauvegarde, librement disponible sur Internet et fonctionnant avec ESXI. Le premier utilise l’API Perl fournie par VMware, le second exploite les outils disponibles depuis l’interface SSH. Le second script est accompagné d’un script BATCH d’automatisation de la sauvegarde.
Script PERL
Créer un fichier « ESXi-Backup.pl » dans “C:Program FilesVMwareVMware VI Remote CLI”. Basé sur le script qui est disponible sur http://communities.vmware.com/thread/164134.
Le tableau $VMNames[] contient des noms de dossiers. Lorsqu’une machine est crée avec l’assistant, le nom de la VM est identique au nom du dossier de stockage. Si la VM a été personnalisée, ce n’est pas forcément le cas !
Si la VM est active, le script demande la création d’un SnapShot « BackupSnap» pour les VMs portant le nom $VMNames[]. Ainsi, la VM peux continuer à tourner pendant la sauvegarde. L’état de la sauvegarde sera celui de la VM au moment du SnapShot.
Le script parcours la liste des datastore de l’ESXi pour trouver des dossiers au noms de $VMNames[].
Pour chaque datastore, pour chaque dossier, le copie la VM vers le datastore de stockage.
Cette archive est ensuite copiée vers le serveur Rsync.
L’archive est alors supprimée – aucun contrôle n’est fait sur le bon déroulement du transfert vers le serveur Rsync.
L’état de la VM est consolidé avec le SnapShot.
La variable $RCLIPath doit contenir le chemin court vers “Remote CLI “. Pour obtenir le chemin court, taper « dir /x »
Script BASH
Basé sur le script ghettoVCB.sh qui est disponible sur http://communities.vmware.com/docs/DOC-8760)
Dans un même répertoire:
- Editer “ghetto.vcb” pour y inscrire le datastore de destination de sauvegardes.
- Créer une archive “archive.tgz” contenant “ghetto.vcb”.
- Créer un fichier “list.lst” contenant le nom des VMs à sauvegarder.
- Copier les utilitaires plink, pscp, mpack, bmail
- Créer un fichier “go.bat” contenant le code suivant:
del /s body.msg
del /s body.txt
date /T >> body.txt
time /T >> body.txt
echo "Copy file to esxi" >> body.txt
pscp -pw password list.lst root@192.168.1.60:"/tmp/liste.lst" >> debug.log
pscp -pw password archive.tgz root@ 192.168.1.60:"/tmp/archive.tgz" >> debug.log
plink -v -pw password root@ 192.168.1.60 tar zxv -f /tmp/archive.tgz -C /tmp >> debug.log
plink -v -pw password root@ 192.168.1.60 chmod +x /tmp/ghettoVCB.sh >> debug.log
echo "———————–" >> body.txt
date /T >> body.txt
time /T >> body.txt
echo "run backup script" >> body.txt
plink -v -pw password root@ 192.168.1.60"sh ./tmp/ghettoVCB.sh /tmp/liste.lst" >> debug.log
echo "———————–" >> body.txt
date /T >> body.txt
time /T >> body.txt
echo "send notification and log by email" >> body.txt
mpack -s "Sauvegarde de Esxi 192.168.1.60 terminee!" -d body.txt -o body.msg debug.log
bmail -d -h -s smtp.monserver.fr -t aaaxxx.fr -f yyyy@zzz.fr -m body.msg
echo "———————–" >> body.txt
date /T >> body.txt
time /T >> body.txt[/shell]
lancer la sauvegarde en double-cliquant “go.bat” ou programmer un tâche windows pour en automatiser le lancement
Bonjour,
Merci pour votre site. Je commence dans la virtualisation, j’ai plusieurs problèmes lors de la création de la sauvegarde.
Je ne trouve pas sur le net le soft mpack. Lorsque je lance le script, j’ai une erreur sur certaines VM et lorsque la sauvegarde se fait le script se bloque.
Merci
Merci pour le blog, cela m’a beaucoup aidé.
Par contre, je ne voyais pas l’utilité de transférer un fichier compressé à l’esxi (pour les 3 fichiers textes qu’il contenait…), après pas mal de temps et de recherche d’erreurs, j’ai découvert que PSCP modifiait les fichiers textes qu’il transférait (ajout de ^M à chaque ligne) ce qui faisait planté mon script de backup qui se basait sur une liste de VM.
Dommage que vous n’ayez pas précisé ce point dans votre doc….
Merci @+
Je pense que le lien ci-dessous correspond à ta demande:http://thebackroomtech.com/2007/09/26/script-to-backup-the-windows-server-system-state-using-ntbackup-from-the-command-line/
Bonjour, Merci déjà de vous intérêsser à se message.Je voulais savoir un script.bat qui permet de sauvegarder l’etat de serveur “active directory” , proxy isa et serveur de fichier deplus faire backup vers un serveur supplémentaire. Merci d’avant pour vos réponses.
Je viens de découvrir ce blog. Bravo.
Pour info je viens de découvrir aussi un site avec un soft qui apparement travaille avec du web GUI pour faire des backups des VMs http://www.clarkconnect.com/docs/Modules_-_LAN_Backup/Recovery
“Clarkconnect is dead easy to install and run as everything is done via the web GUI”
Pas testé par moi même, mais cela ne va pas tarder…
Vladan 8)
Tiens, mon Gravatar ne marche pas ici…
merci beaucoup pour ces précisions.
De même, je développerai mon approche.
De mon expérience, ESXi est extremement resistant – Au pire, à ce jour, je n’ai perdu que les pools et les switches.
Mon installation de ESXi date d’une semaine seulement.
J’ai effectivement modifier quelques paramètres et je penche perso pour une solution Ghost (qu’il faut que je teste)
Je boot sur un Cd Winpe et sauvegarde de la partition qui boot ESXi
Ensuite ce .GHO, gravé sur un Cd bootable, permettrais de remettre la machine en production rapidement.
C’est l’idée de base car je ne me suis pas encore penché sur les répertoires ESXi de l’hôte.
Je vous ferais signe si j’ai progressé
Votre remarque est tout à fait pertinente.
C’est un point sur lequel j’ai effectivement prévu de me pencher.
Si vous avez des suggestions pour me guider, je suis à votre écoute.
Bonjour,
Je viens de parcourir les 6 articles correspondant à la sauvegarde de VMware.
Ok pour tout ce qui est dit mais à aucun moment vous ne parlez de comment sauvegarder l’hote VMware.
Il peut très bien arriver que la machine de base tombe aussi et a ce moment la comment la remettre en prod rapidement.
J’entends pas la le reparamétrage de cartes réseau en teaming, des comptes utilisateurs accédant à telle ou telle machine virtuelle, des groupes, ….
Dans l’attente d’un article a ce sujet 🙂
En tout cas merci déjà pour cette série d’articles et bon courage pour les suivants