OVH Cloud OVH Cloud

erreur /bin/sh: line 1: checkmbox: command not found avec cron

3 réponses
Avatar
Nicolas Guillaud
J'essaye de lancer des script avec cron (par exemple un backup, un anti
virus,...). Ce sont des scripts que j'ai dans un repertoire /home/bin.
Quand je lance ces scripts avec cron, j'obtient l'erreur suivante :

/bin/sh: line 1: checkmbox: command not found

En ligne de commande, les scripts marchent. Avec la Mandrake 9.0, ils
marchaient et je viens d'installer la Mandrake 9.1, ils marchent plus.
Par exemple le script suivant ne marche pas et donne l'erreur precedante.

#!/bin/bash

GIF="/home/data/pixmap/animations/snail.gif"
SIZE="$(/home/bin/sizeof $MAIL)"


if [ "$SIZE" != "0" ]; then
gifview -a $GIF --geometry +600+500
fi

J'ai bien conscience que je doit avoir un problème de configuration ou de
variable d'environnement mais je ne trouve pas où?

Quelqu'un pourrait m'aider ?
Merci
A+
Nic

3 réponses

Avatar
Christophe Le Gal
J'essaye de lancer des script avec cron (par exemple un backup, un anti
virus,...). Ce sont des scripts que j'ai dans un repertoire /home/bin.
Quand je lance ces scripts avec cron, j'obtient l'erreur suivante :

/bin/sh: line 1: checkmbox: command not found

En ligne de commande, les scripts marchent. Avec la Mandrake 9.0, ils


Les scripts lances en ligne de commande ne sont pas lances dans le meme
environnement que ceux lances par cron. En particulier le reglage
specifique de ta variable PATH pour /home/bin soit accessible n'a pas
d'influence sur cron.

Il faut donc,
soit explicitement donner le chemin des commandes dans la crontab
(/home/bin/checkmbox au lieu de checkmbox)
soit regler la varaible path correctement pour cron :
PATH=/home/bin:/bin:/usr/bin



--
Christophe Le Gal

Avatar
Nicolas Guillaud
Le Thu, 07 Aug 2003 16:12:16 +0000, Christophe Le Gal a écrit :

J'essaye de lancer des script avec cron (par exemple un backup, un anti
virus,...). Ce sont des scripts que j'ai dans un repertoire /home/bin.
Quand je lance ces scripts avec cron, j'obtient l'erreur suivante :

/bin/sh: line 1: checkmbox: command not found

En ligne de commande, les scripts marchent. Avec la Mandrake 9.0, ils


Les scripts lances en ligne de commande ne sont pas lances dans le meme
environnement que ceux lances par cron. En particulier le reglage
specifique de ta variable PATH pour /home/bin soit accessible n'a pas
d'influence sur cron.

Il faut donc,
soit explicitement donner le chemin des commandes dans la crontab
(/home/bin/checkmbox au lieu de checkmbox)
soit regler la varaible path correctement pour cron :
PATH=/home/bin:/bin:/usr/bin


Ma commande crontab est la suivante :
0,10,20,30,40,50 8-18 * * * checkmbox%/home/bin/checkmbox

et mes variables :
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

je vais essayer de modifier le PATH.
A Nic


Avatar
Christophe Le Gal
Ma commande crontab est la suivante :
0,10,20,30,40,50 8-18 * * * checkmbox%/home/bin/checkmbox


Je pense qu'il y a un malentendu sur la signification du %.
Le % est un retour charriot. Et le 1er % veut implicitement dire que ce qui
suit est envoye sur l'entree standard
de la commande.
cf man 5 contrab.

Bref

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/home/bin
0,10,20,30,40,50 8-18 * * * checkmbox

ou alors, on ne touche pas a PATH

PATH=/sbin:/bin:/usr/sbin:/usr/bin
0,10,20,30,40,50 8-18 * * * /home/bin/checkmbox

A noter que si checkmbox fait lui meme appel a des scripts de /home/bin
(sans expliciter le chemin), il n'y a pas le choix. Il te faut
un path vers /home/bin.

--
Christophe Le Gal