# Script bash avec commande XEN

**URL:** <https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 8:40 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096 "2016-02-20T20:40:43Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Beyond\_death](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/a6a055/32.png) [@Beyond\_death](https://www.debian-fr.org/u/Beyond_death)\
**Post date:** [Février 20, 2016, 8:40 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/1 "2016-02-20T20:40:43Z")

</div>

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 ! : )

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 8:40 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/2 "2016-02-20T20:40:45Z")

</div>

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

```auto

```

Puis au début de ton script tu met

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

---

<div class="post-metadata">

**Author:** ![Beyond\_death](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/a6a055/32.png) [@Beyond\_death](https://www.debian-fr.org/u/Beyond_death)\
**Post date:** [Février 20, 2016, 8:40 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/3 "2016-02-20T20:40:50Z")

</div>

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 : )

---

<div class="post-metadata">

**Author:** ![Beyond\_death](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/a6a055/32.png) [@Beyond\_death](https://www.debian-fr.org/u/Beyond_death)\
**Post date:** [Février 20, 2016, 8:41 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/4 "2016-02-20T20:41:07Z")

</div>

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 😕 )

`#!/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.

* * *

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 20, 2016, 8:41 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/5 "2016-02-20T20:41:09Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Beyond\_death](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/a6a055/32.png) [@Beyond\_death](https://www.debian-fr.org/u/Beyond_death)\
**Post date:** [Février 20, 2016, 8:41 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/6 "2016-02-20T20:41:09Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 8:41 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/7 "2016-02-20T20:41:24Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Beyond\_death](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/a6a055/32.png) [@Beyond\_death](https://www.debian-fr.org/u/Beyond_death)\
**Post date:** [Février 20, 2016, 8:41 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/8 "2016-02-20T20:41:25Z")

</div>

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 !

---

<div class="post-metadata">

**Author:** ![Beyond\_death](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/a6a055/32.png) [@Beyond\_death](https://www.debian-fr.org/u/Beyond_death)\
**Post date:** [Février 20, 2016, 8:42 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/9 "2016-02-20T20:42:11Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 20, 2016, 8:42 UTC](https://www.debian-fr.org/t/script-bash-avec-commande-xen/22096/10 "2016-02-20T20:42:11Z")

</div>

Bonjour,

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

```auto

```
