Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/07/2017, à 14:31

GaelP

Problème de scripts avec crontab

Bonjour!

Je rencontre un petit soucis pour l'exécution d'un script à l'aide de crontab.
Je voudrais lancer un programme chaque heure et un autre chaque minute (c'est le même programme, mais avec des arguments différents en fait).

A la base, j'ai édité ma crontab comme ceci:

00 * * * * /home/user_name/measure.sh set
* * * * * /home/user_name/measure.sh

Et mon script measure.sh:

#! /bin/bash

# Go to the right directory if not already
if [ pwd != ~/Testing/ ]
then
	cd ~/Testing/
fi

# Launch a single sampling
if [ -z $1 ]; then
java -jar Network.jar -m 1 2 >> test.log

else
    if [ $1 = "help" ]; then
# Display help
    java -jar Network.jar -h >> test.log
    else
# Create a new MeasureSet
    java -jar Network.jar -s A304 >> test.log
    fi
fi

Mon soucis:
Lorsque j'exécute le script depuis le terminal, tout se passe bien. Les mesures sont effectuées et le fichier log se remplit petit à petit. Lorsque je lance le programme directement depuis la crontab, idem.

Par contre, si j'utilise la crontab comme mentionné plus haut pour lancer le script, plus rien ne se passe...

Les logs de crontab sont les suivants:

Jul 28 14:14:01 *** CRON[30383]: (root) CMD (/home/user_name/runMeasure.sh set)
Jul 28 14:14:01 *** CRON[30382]: (CRON) info (No MTA installed, discarding output)
Jul 28 14:15:01 *** CRON[31748]: (root) CMD (/home/user_name/runMeasure.sh set)
Jul 28 14:15:01 *** CRON[31747]: (CRON) info (No MTA installed, discarding output)

Ce n'est pas vraiment important, vu que j'arrive à me débrouiller en lancant le programme directement, mais j'aimerais bien savoir pourquoi ça ne marche pas...

Merci d'avance

wink

Hors ligne

#2 Le 28/07/2017, à 14:51

Watael

Re : Problème de scripts avec crontab

salut,

rien n'indique dans le log que tu montres que le script ne s'exécute pas.

par contre, il se peut qu'il y ait un problème qui ne sera pas montré, parce qu'il n'y a pas de serveur mail (MTA) installé.

pour voir les erreurs, soit tu installes un MTA, soit tu ajoutes

exec 2>/tmp/"${0#*/}.log"

sous le shebang, et tu pourras alors consulter le fichier /tmp/measure.sh.log après son exécution présumée.

d'autre part, il y a peu de chance que, lancé par cron, le script s'exécute depuis ~/Testing, le test semble donc inutile, il sera toujours vrai : $PWD ne vaudra jamais ~/Testing.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 28/07/2017, à 15:00

GaelP

Re : Problème de scripts avec crontab

Watael a écrit :

rien n'indique dans le log que tu montres que le script ne s'exécute pas.

C'est pour ça que j'avais mis:

 >> test.log

dans le script et que pour chaque fois que le programme se lance, je fait un print...

Mais le fichier test.log reste vide.

Je vais essayer de faire comme tu dis:

exec 2>/tmp/"${0#*/}.log"

On verra bien ce que ça fait wink

Watael a écrit :

d'autre part, il y a peu de chance que, lancé par cron, le script s'exécute depuis ~/Testing, le test semble donc inutile, il sera toujours vrai : $PWD ne vaudra jamais ~/Testing.

C'est pas faux. J'y avait pas réfléchi avant big_smile
Je corrigerai ça aussi.

En tout cas merci bien pour tes conseils avisés ^^

Hors ligne