Rechercher : dans
Par :

Problème à la cron

Dernière réponse le 6 jun 2006 à 13:40:22 exteror, le 29 mai 2006 à 16:20:42 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « problème à la cron » dans :
Automatiser des tâches avec init et cron Voir Sous Linux, il est facile d'automatiser des tâches, avec init pour lancer une tâche au démarrage, ou bien avec cron pour lancer une tâche à un moment précis. Il y a plusieurs logiciels gérant les crons, ici le logiciel crontab est...
Backups automatisé de la configuration VoirIl est toujours préférable de faire des backups réguliers de certains dossiers, au cas ou ils seraient perdus ou endommagés. Par exemple de votre répertoire personnel, ou encore de la configuration de tous les logiciels et du système...
Linux - Ordonnancement des taches VoirIntroduction à l'ordonnancement des tâches L'ordonnancement des tâches consiste à exécuter automatiquement une tâche (une application, une commande, ...) à intervalles de temps réguliers ou bien à des moments précis. Généralement ce type de...

1

[Dal], le 29 mai 2006 à 16:47:36

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

Répondre à [Dal]

2

exteror, le 30 mai 2006 à 10:02:37

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.

Répondre à exteror

3

[Dal], le 30 mai 2006 à 11:09:35

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

Répondre à [Dal]

4

exteror, le 6 jun 2006 à 13:32:03

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

Répondre à exteror

5

[Dal], le 6 jun 2006 à 13:38:46

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

Répondre à [Dal]

6

 lami20j, le 6 jun 2006 à 13:40:22

Salut,

Normalement c'est dans /var/log/messages

lami20j

Répondre à lami20j
Collection CommentÇaMarche.net