Script bash avec commande XEN

Bonjour à tous !

Voici mon problème, j’ai un script en bash qui; globalement effectue une sauvegarde d’une partition virtuelle de XEN sur un disque dur USB.

Si il y a des erreurs, un mail est envoyé.

Les principales erreurs sont dues au fait qu’il ne reconnait pas les commandes de XEN du genre:
xm shutdown “nom machine” ou xm create " …"

Je pense que je n’ai pas renseigné l’environnement des commandes comme on doit le faire avec la ligne #!/bin/bash, le problème étant que je n’ai pas trouvé comment faire pour celles de XEN.
Est ce que quelqu’un pourrait m’aider ?

Merci d’avance ! : )

xm ne doit pas être dans le $PATH du script, essaie de voir où il se trouve grâce à la commande :

Puis au début de ton script tu met

#!/bin/sh PATH=$PATH:/le/dossier/que/tu/auras/trouvé

Merci de m’aider !
je ne peux pas essayer la sauvegarde en pleine journée a cause du trafic a ma boite mais j’essaie cette nuit et je te dis tout ce que ca a fait!

Meric bcp en tout cas : )

Donc j’ai lancé le script hier via crontab.
Même erreurs :

Rapport d’erreurs

jeudi 10 septembre 2009, 23:59:01 (UTC+0200)
Disque present - jeudi-23:59:01
/root/save.sh: line 6: xm: command not found
Probleme Zeus
mount: /dev/mapper/vdisk-zeus–disk already mounted or /root/chroot busy
mount: according to mtab, /dev/mapper/vdisk-zeus–disk is already mounted on /root/chroot
Probleme Montage disque Zeus - jeudi-23:59:01
/root/save.sh: line 38: xm: command not found
Probleme Zeus


Voici le script pour voir si j’ai fait des éventuelles erreurs ( je ne suis pas très calé en bash :confused: )

#!/bin/sh PATH=$PATH:/usr/sbin/xm date > save_`date +%j-%Y`.log if [ -e /dev/sdb1 ]; then echo "Disque present - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; if(xm shutdown zeus >> save_`date +%j-%Y`.log 2>&1 ) then echo "Zeus shutdown ok" >> save_`date +%j-%Y`.log; else echo "Probleme Zeus" >> save_`date +%j-%Y`.log; fi if(mount /dev/vdisk/zeus-disk /root/chroot >> save_`date +%j-%Y`.log 2>&1 ) then echo "Montage Disque Zeus ok - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; if( mount -t ntfs-3g -o force /dev/sdb1 /root/usb >> save_`date +%j-%Y`.log 2>&1 ) then echo "Montage disque ok - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; if( mkdir /root/usb/`date +%j-%y` >> save_`date +%j-%Y`.log 2>&1 ) then echo "Creation dossier ok - `date +%A-%H:%M:%S` " >> save_`date +%j-%Y`.log; if( cp -r /root/chroot/srv/data /root/usb/`date +%j-%y`/ >> save_`date +%j-%Y`.log 2>&1 ) then echo "Copie Data ok - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; else echo "Probleme Data - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi if( cp -r /root/chroot/home /root/usb/`date +%j-%y`/ >> save_`date +%j-%Y`.log 2>&1 ) then echo "Copie Home ok - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; else echo "Probleme Home - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi if(umount /root/usb >> save_`date +%j-%Y`.log 2>&1) then echo "Demontage disque usb ok - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; else echo "Probleme umount USB - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi if(umount /root/chroot >> save_`date +%j-%Y`.log 2>&1) then echo "Demontage disque Zeus ok - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; else echo "Probleme umount Zeus - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi else echo "Probleme creation dossier - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi else echo "Probleme Mount USB-Disk- `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi else echo "Probleme Montage disque Zeus - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi if(xm create /etc/xen/zeus.cfg >> save_`date +%j-%Y`.log 2>&1 ) then echo "Zeus start! ok" >> save_`date +%j-%Y`.log; else echo "Probleme Zeus" >> save_`date +%j-%Y`.log; fi mail -s "Resume sauvegarde de `date`" xxxx@gmail.com < save_`date +%j-%Y`.log mail -s "Resume sauvegarde de `date`" xxxx@medimex.fr < save_`date +%j-%Y`.log mail -s "Resume sauvegarde de `date`" xxxx@medimex.fr < save_`date +%j-%Y`.log else echo "Probleme Disque Non present - `date +%A-%H:%M:%S`" >> save_`date +%j-%Y`.log; fi

Merci encore de votre aide : )
Cela changerait quelque chose si je mettais le path dans crontab directement ?

Au cas ou voici ma crontab:


###################

Save Daily Zeus

###################

MAILTO=root
SHELL=/bin/bash
59 23 * * * /root/save.sh <---- Voici le script qui effectue la sauvegarde, lancé automatiquement tous les soirs a 23h59 et qui s’éffectue entièrement que si un disque dur est branché.
00 14 * * 4 /root/mail.sh <---- script envoyant un message rappellant qu’une sauvegarde est programmée.


Bonjour,

Ce n’est pas PATH=$PATH:/usr/sbin/xm mais PATH=$PATH:/usr/sbin

Le PATH définit une liste de répertoire et non les chemins vers le binaire directement.

-_- ok merci j’ai modifié : )

Merci ! Je verrais ce soir si ça a marché !

Désolé de na pas avoir était très clair et de ne pas avoir pu répondre plutôt.

Aucun soucis, tu es là pour m’aider c’est pas moi qui m’en plaindrais : )

Je vois ce qu’a donné le script lundi puis je reposterais : )

Bon Week end !

Après avoir renseigné cette ligne dans mon script, il s’exécute encore moins:
Donc est ce que l’une de mes boucles n’est pas bonne ?

Fichier Log d’erreurs:

Disque present -
/usr/sbin/xm: line 4: basename: command not found
/usr/lib/xen-common/bin/xen-utils-version: line 16: cat: command not found
WARING! Can’t read type from sysfs!
/usr/sbin/xm: line 6: /usr/lib/xen-default/bin/: is a directory
/usr/sbin/xm: line 6: exec: /usr/lib/xen-default/bin/: cannot execute: Succès
Probleme Zeus
/root/save.sh: line 10: mount: command not found
Probleme Montage disque Zeus -
/usr/sbin/xm: line 4: basename: command not found
/usr/lib/xen-common/bin/xen-utils-version: line 16: cat: command not found
WARING! Can’t read type from sysfs!
/usr/sbin/xm: line 6: /usr/lib/xen-default/bin/: is a directory
/usr/sbin/xm: line 6: exec: /usr/lib/xen-default/bin/: cannot execute: Succès
Probleme Zeus

Bonjour,

Après la commande suivante : PATH=$PATH:/usr/sbin execute un export du PATH :