Problème à la cron

Fermé
exteror - 29 mai 2006 à 16:20
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 6 juin 2006 à 13:40
déjà bonjour tout le monde,
j'ai un petit problème lors de l'éxecution de ma tache crontab.
j'ai un script shell qui est éxecutable ( chmod a+x script)
lors d'un test j'ai vu que mons script passe.
/usr/sbin/script, il se lance normal.
Mais je n'arrive pas a faire de tache crontab:
30 17 * * * moi /usr/bin/script
ben rien ne se passe à 17h30
quelqu'un aurait une idée pour mon crontab qui pour moi semble correct merci d'avance

TCHO
A voir également:

6 réponses

[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
29 mai 2006 à 16:47
Salut,

Tu as des logs dans /var/log/cron normalement, va voir ce qui ne va pas.

Sinon, quelques remarques.

Sauf si celà est nécessaire, root ne devrait pas lancer les script, mais un utilisateur. De plus, si tu veux créer une entrée cron pour un utilisateur, il n'est absolument pas nécessaire de devenir root pour ce faire (le format de ta ligne crontab me laisse penser que tu essayes de modifier directement /etc/crontab ou un truc tu genre).

La gestion des crontab des utilisateurs se fait normalement en faisant :

su - moi
crontab -e

Ce qui ouvre l'éditeur par défaut de la machine avec la crontab de cet utilisateur.

Après avoir mis la crontab que tu souhaites (format : m-h-jour-mois-joursemaine commande), tu sauvegardes et tu quittes l'éditeur, et cron est immédiatement chargé avec la nouvelle crontab.

Si tu modifies les fichiers de configuration en direct, un redémarrage de crond est nécessaire + tu n'es pas sensé le faire.

Dans ton script shell, vérifie que toutes les commandes utilisent des chemins absolus (par exemple "/usr/bin/grep" au lieu de "grep" seulement). Ton script ne va pas s'exécuter dans le même environnement et /usr/bin/, par exemple, peut ne pas être dans le $PATH).


Dal
0
salut c'est encore moi,
j'ai fait ce que tu m'as dit mais le problème c'est qu'a l'heure prévu rien ne se passe.
mon script lance une mise ajours des packages automatiquement.
il se trouve dans /home/script/scriptcron et il est executable ( j'ai vérifié)
Dans ce crontab -e voila ce que j'ai écrit

PATH=/usr/bin:/usr/sbin
SHELL=/bin/sh
00 17 * * * /home/script/scriptcron

j'ai aussi fait:
cp /home/script/scriptcron /usr/sbin/scriptcron

j'ai regarder dans /var/log/cron ça n'existe pas, que devrais y trouver normalement.

si quelqu'un peut repondre a toutes mes questions merci.
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
30 mai 2006 à 11:09
Salut exteror,

1.

j'ai regarder dans /var/log/cron ça n'existe pas, que devrais y trouver normalement.

C'est là que se trouvent les logs sur FreeBSD. Sur Debian, çà a l'air d'être dans /var/log/syslog. D'ailleurs, tu n'as pas précisé quel était ton système.

Pour rechercher où se trouvent tes logs, fait :

cd /var/log/
grep -i cron * | less


ou grep -i scriptcron * | less

où "scriptcron" est le nom de ton script cron

et voit quel(s) fichier(s) tu dois inspecter (tu peux faire défiler le résultat fournit à less, "q" pour quitter).

2.

PATH=/usr/bin:/usr/sbin
SHELL=/bin/sh


Je ne me suis jamais hasardé à changer ces variables au sein d'une crontab. Cependant la page de manuel Debian crontab(5) mentionne que:

SHELL est déjà par défaut /bin/sh (cette ligne serait donc inutile) et que PATH est /usr/bin:/bin (tu as retiré /bin, pourquoi ?)

Mis à part celà, ton crontab d'utilisateur a l'air correct. Cependant, comme je te l'ai dit, tu dois vérifier que toutes les commandes de ton script "scriptcron" utilisent des chemins absolus (ou vérifie qu'elles sont toutes dans le path que tu crées). Identifie toutes ces commandes et leur emplacement (avec which commande) et modifie ton fichier "scriptcron" en rajoutant les chemins complets de commandes.


Dal
0
salut et encore merci pour les réponse mais j'aurai voulu savoir ou est ce que je pourrait lire les log du crontab

merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
6 juin 2006 à 13:38
Salut exteror,

As-tu regardé dans /var/log/syslog ?

As-tu fait celà :

Pour rechercher où se trouvent tes logs, fait :

cd /var/log/
grep -i cron * | less

ou grep -i scriptcron * | less

où "scriptcron" est le nom de ton script cron

et voit quel(s) fichier(s) tu dois inspecter (tu peux faire défiler le résultat fournit à less, "q" pour quitter).


Tu n'as toujours pas indiqué quel était ton système. L'emplacement des logs n'est pas nécessairement le même partout.


Dal
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 juin 2006 à 13:40
Salut,

Normalement c'est dans /var/log/messages

lami20j
0