Bonjour tous j'ai voulu programmer une tâche cron pour cela j'ai crée le fichier dans /home/jo/Downloads/test
en tant que root j'ai taper "crontab -e"
Voici le contenu :
SHELL=/bin/bash
MAILTO=root
PATH=$PATH
HOME=/
24 03 * * * root rm -f /home/jo/Downloads/test
J'ai sauvegarder avec :wq et pourtant cron ne se lance pas (j'ai voulu le lancer à 03:24 est le fichier test est toujours présent)
Voici mes logs de /var/log/cron
Feb 10 03:14:28 localhost crontab[1949]: (root) BEGIN EDIT (root)
Feb 10 03:15:18 localhost crontab[1949]: (root) REPLACE (root)
Feb 10 03:15:18 localhost crontab[1949]: (root) END EDIT (root)
Feb 10 03:16:04 localhost crontab[1954]: (root) BEGIN EDIT (root)
Feb 10 03:17:53 localhost crontab[1954]: (root) END EDIT (root)
Feb 10 03:17:56 localhost crontab[1970]: (root) BEGIN EDIT (root)
Feb 10 03:18:05 localhost crontab[1970]: (root) END EDIT (root)
Feb 10 03:18:09 localhost crontab[1974]: (root) BEGIN EDIT (root)
Feb 10 03:18:16 localhost crontab[1974]: (root) REPLACE (root)
Feb 10 03:18:16 localhost crontab[1974]: (root) END EDIT (root)
Feb 10 03:18:18 localhost crontab[1978]: (root) BEGIN EDIT (root)
Feb 10 03:19:01 localhost crond[653]: (root) RELOAD (/var/spool/cron/root)
Feb 10 03:19:16 localhost crontab[1978]: (root) REPLACE (root)
Feb 10 03:19:16 localhost crontab[1978]: (root) END EDIT (root)
Feb 10 03:19:29 localhost crontab[2024]: (root) BEGIN EDIT (root)
Feb 10 03:19:32 localhost crontab[2024]: (root) REPLACE (root)
Feb 10 03:19:32 localhost crontab[2024]: (root) END EDIT (root)
Feb 10 03:20:01 localhost crond[653]: (root) RELOAD (/var/spool/cron/root)
Feb 10 03:20:17 localhost crontab[2040]: (root) BEGIN EDIT (root)
Feb 10 03:21:07 localhost crontab[2040]: (root) REPLACE (root)
Feb 10 03:21:07 localhost crontab[2040]: (root) END EDIT (root)
Feb 10 03:22:01 localhost crond[653]: (root) RELOAD (/var/spool/cron/root)
Feb 10 03:22:01 localhost CROND[2052]: (root) CMD (root rm -f /home/jo/Downloads/test)
Feb 10 03:22:13 localhost crontab[2061]: (root) BEGIN EDIT (root)
Feb 10 03:22:34 localhost crontab[2061]: (root) END EDIT (root)
Feb 10 03:22:37 localhost crontab[2065]: (root) LIST (root)
Feb 10 03:23:46 localhost crontab[2124]: (root) BEGIN EDIT (root)
Feb 10 03:23:55 localhost crontab[2124]: (root) REPLACE (root)
Feb 10 03:23:55 localhost crontab[2124]: (root) END EDIT (root)
Feb 10 03:24:01 localhost crond[653]: (root) RELOAD (/var/spool/cron/root)
Feb 10 03:24:02 localhost CROND[2129]: (root) CMD (root rm -f /home/jo/Downloads/test)
Feb 10 03:24:10 localhost crontab[2138]: (root) BEGIN EDIT (root)
Feb 10 03:24:18 localhost crontab[2138]: (root) END EDIT (root)
Feb 10 03:25:52 localhost crontab[2201]: (root) BEGIN EDIT (root)
Feb 10 03:26:17 localhost crontab[2201]: (root) END EDIT (root)
Feb 10 03:32:21 localhost crontab[2308]: (root) BEGIN EDIT (root)
Feb 10 03:33:27 localhost crontab[2308]: (root) END EDIT (root)
Qui peut m'aider ?
PS : je suis sur Fedora 18 XFCE 32 bit
# crontab utilisateur
Posté par netsurfeur . Évalué à 6.
Il y a une différence entre les crontabs systèmes (/etc/crontab et /etc/cron.d/*) et les crontabs utilisateurs (dans /var/spool/cron/crontabs et éditées par crontab -e): on ne spécifie pas de compte utilisateur dans une crontab utilisateur (c'est inutile):
# Environnement
Posté par zipe31 . Évalué à 4.
Salut,
Euh… ça ça revient à écrire :
Une crontab n'a pas d'environnement, donc si tu ne lui donnes pas un PATH complet (ou un fichier à sourcer), tes commandes ne seront pas reconnues (rm dans ton cas).
[^] # Re: Environnement
Posté par netsurfeur . Évalué à 3.
La ligne PATH=$PATH est inutile mais ne casse rien.
Une crontab a un environnement minimal, PATH y est défini en:
voir man 5 crontab pour les détails.
[^] # Re: Environnement
Posté par zipe31 . Évalué à 1.
Effectivement, j'avais zapé ce détail. Merci.
Par contre il est écrit aussi :
Alors j'ai testé en initialisant la variable PATH=$PATH en début de crontab et en faisant un simple cp /home/moi/fichier1 /home/moi/fichier2 et résultat… rien.
Par contre en enlevant PATH=$PATH la copie s'est bien effectuée.
Conclusion : Il doit supprimer la déclaration de sa variable ou lui donner les chemins en dur ou encore sourcer un fichier d'environnement.
[^] # Re: Environnement
Posté par netsurfeur . Évalué à 2.
Merci d'avoir vérifié.
Il est vrai que j'ai plutôt l'habitude de définir les variables d'environnement à l'intérieur du script lancé par cron plutôt que dans la crontab. Ça permet de s'assurer que l'environnement est identique que la commande soit lancée par cron ou manuellement (pratique pour les tests).
Finalement, la crontab contient deux erreurs:
# Merci pour votre aide
Posté par astuces-info.biz . Évalué à 1. Dernière modification le 10 février 2013 à 21:49.
Merci pour votre aide je vous ai écouter tous les eux j'ai mis à jour la variable PATH j'ai mis PATH=/usr/bin:/bin et j'ai enlevé root ce qui donne 45 21 * * * rm -f /home/jo/Downloads/test et la géniale le fichier est supprimé donc le cron marche bien mais je ne savais pas qu'il y avait deux sortes de cron preuve que je ne lit pas encore assez attentivement !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.