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
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
A voir également:
- Problème à la cron
- Z-cron - Télécharger - Optimisation
- Visual cron - Télécharger - Divers Utilitaires
- Cron toutes les 5 minutes - Forum Shell
- Cron toutes les N minutes > à 30 - Forum Shell
- Cron toutes les heures ✓ - Forum Shell
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
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
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
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.
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.
[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
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
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
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
merci d'avance
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
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
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
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
6 juin 2006 à 13:40
Salut,
Normalement c'est dans /var/log/messages
lami20j
Normalement c'est dans /var/log/messages
lami20j