OVH Cloud OVH Cloud

ping : command not found

3 réponses
Avatar
jean
Bonjour,

Sauriez-vous par quelle mystère le shell ne reconnaît pas la commande
ping lorsque je lance un script par le cron; script qui commence par:


#! /bin/sh

ping -c 1 192.168.2.55 > /dev/null;
if [ $? = 0 ] ; then
etc...

et me répond:

/.../trucscript.sh: line 3: ping: command not found

Alors que tout se déroule normalement lorsque je lance le script
manuellement? (le tout sur Mac OS 10.3)

--

jean

3 réponses

Avatar
Eric Levenez
Le 16/10/05 15:21, dans <435253bf$0$18813$, « jean »
a écrit :

Bonjour,

Sauriez-vous par quelle mystère le shell ne reconnaît pas la commande
ping lorsque je lance un script par le cron; script qui commence par:


#! /bin/sh

ping -c 1 192.168.2.55 > /dev/null;
if [ $? = 0 ] ; then
etc...

et me répond:

/.../trucscript.sh: line 3: ping: command not found

Alors que tout se déroule normalement lorsque je lance le script
manuellement? (le tout sur Mac OS 10.3)


Pour trouver une commande, le shell utilise la variable PATH qui donne la
liste des répertoires à scanner. En mode interactif et sous shell cron, la
variable PATH n'est pas initialisée de la même façon. "ping" se trouve dans
/sbin. Il faut ainsi ajouter /sbin au PATH sous cron pour que ping soit
reconnu, ou alors il faut donner son path complet aka /sbin/ping.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Nicolas.MICHEL
jean wrote:

Bonjour,

Sauriez-vous par quelle mystère le shell ne reconnaît pas la commande
ping lorsque je lance un script par le cron; script qui commence par:


#! /bin/sh

ping -c 1 192.168.2.55 > /dev/null;
if [ $? = 0 ] ; then
etc...


Pour dire la même chose que Eric, mais par l'exemple, voici les 2
possibilités les plus comunes :

#! /bin/sh
PATH=$PATH:/sbin:/usr/sbin
ping -c 1 192.168.2.55 > /dev/null
etc...

ou alors :

#! /bin/sh
/sbin/ping -c 1 192.168.2.55 > /dev/null
etc...

--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

Avatar
jean


ou alors :

#! /bin/sh
/sbin/ping -c 1 192.168.2.55 > /dev/null
etc...



Oui; c'est bien ce que j'ai fait (merci à E. Levenez).

--
jean