Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Crontab
Envoyé par: Mathieu

Bonjour,

J'ai un problème de crontab sous Linux. J'édite mes crontab avec la commande crontab -e en tant que root. Mais quand je sors de vi, j'ai le message :

nocrontab for root - using an empty one
crontab : no changes made to crontab

Quand je vérifie ensuite avec crontab -l, effectivement, aucun cron n'a été enregsitré.
J'ai testé, crontab -u root -e, ça n'a rien changé.
J'ai également tenté de le faire sous l'utilisateur admin mais le résultat est le même, les crons ne sont pas mémorisé. ?-(

Par ailleurs les fichiers /etc/cron.allow et /etc/cron.deny n'existent pas et je suis root, donc il ne devrait pourtant pas y avoir de problème.

La commande que je lance dans le cron est bien valide puisqu'elle marche en ligne de commande.

Que faire ? :-/

Merci d'avance.

Windows demain j'arrête

Poste le Monday 24 October 2005 22:36:07
Répondre     Citer    
Re: Crontab (no crontab for root)
Envoyé par: Eric92

crontab de root peut-être supprimée par erreur...
Pour la (re)créer, faire : crontab
(sans argument) puis saisir les ligne(s), et finir par Ctrl+D

Poste le Tuesday 25 October 2005 03:54:16
Répondre     Citer    
Re: Crontab
Envoyé par: Mathieu

Salut,

Je viens d'essayer la commande crontab sans argument mais il me répond
crontab : usage error : file name must be specified for replace
(+ rappel de l'utilisation de crontab, -e -l -r etc...)

Est-ce qu'il ne faudrait pas spécifier un nom de fichier ?
Je ne vois pas à quoi correspond le nom de fichier... est-ce qu'on peut mettre n'importe quel nom de fichier ou est-ce que ça doit correspondre au nom d'utilisateur en loccurence root ? ?-(

Merci d'avance. :-)

Mathieu

Poste le Tuesday 25 October 2005 10:30:51
Répondre     Citer    
Re: Crontab (no crontab for root)
Envoyé par: Mathieu

Re ! :-p
Je viens de faire un essai avec la ligne de commande suivante :
crontab -u root root
(le premier root étant l'utilisateur root et le second root étant le nom de fichier que je souhaitais utiliser pour le cron)
Il ne n'a rien renvoyé, donc à priori il a créé le cron :-)

Le soucis est maintenant que même si le cron est bien créé, il ne veut pas me le modifier... quand je fais un crontab -e et que je rentre ma ligne de commande, il dit en sortie, "crontab: no changes made to crontab".
Bon il ne me dit plus "nocrontab for root" mais si je ne peux pas modifier celui qui existe c'est guère mieux....

Petit précision, le crontab est bien créé parcequ'en root si je fais un crontab -l il m'affiche ceci :
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (root installed on Tue Oct 25 10:22:26 2005)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

Peut-être que le problème vient de vi ? ?-( J'édite après un 'A' et je sauve avec ':w' ou ':x' mais rien n'y fait.

Merci d'avance.

Poste le Tuesday 25 October 2005 10:58:35
Répondre     Citer    
Re: Crontab
Envoyé par: Sve@r

C'est assez bizarre comme problème. On a l'impression qu'il n'associe pas le fichier que tu édites avec "vi" (qui n'est qu'une copie du fichier cron) avec justement ce fichier "cron". Ou alors tu rentres mal ta ligne et cron la refuse donc il croit que t'as rien rentré.

Je peux pas résoudre ce problème mais je sais comment modifier le cron sans faire "crontab". Tu édites le fichier qui t'intéresse ("/var/spool/cron/machin") puis, une fois fini, tu recherches le pid du "cron" et tu tapes "kill -1 pid_du_cron"
Quand il reçoit un signal "HUP", le cron se réinitialise.

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Tuesday 25 October 2005 15:47:28
Répondre     Citer    
Re: Crontab
Envoyé par: Mathieu

Bonjour,

Merci pour le conseil, je viens de trouver une source intéressante sur [forum.amen.fr]

Une personne a eu le même problème que moi sur un serveur Cobalt Raq550 (donc le même que moi) et qui a réussi à résoudre le problème. Je vous cite les points intéressants :

********** Problème soulevé *************
Suis sur un serveur dédié Raq 550
Lorsque je veux ajouter une tâche dans le crontab, quand je finis après avoir quitté le mode édition, je tape :wq! ou :wq et j'obtiens ceci :
"crontab.18206" 2L, 7C written
crontab: no changes made to crontab
[admin admin]$
Les changements ne sont jamais pris en compte.
Avant les dernières mises à jour de sécurité il n'y a avit aucun problème.

******* Résolution du problème ************
En fait, tu te connectes en SSH, comme super utilisateur.
Ensuite, tu tapes :
vi /etc/crontab
et tu rajoutes en dernière ligne tes instructions pour le crontab, en précisant l'utilisateur, exemple :
*/5 * * * * nom utilisateur /home/sites/www.ton_domaine.com/web/cgi-bin/webumake/mmmgetpop.cgi
Ici c'est un exemple pour une appli Perl, pour une en PHP utilises wget
Avant, on pouvait éditer le crontab de chaque domaine en tapant crontab -e après s'être loggé en Telnet, mais pour des raisons X non expliquées, celà n'est plus possible, du moins sur un Cobalt Raq 550.

*********************************************

Voilà, j'ai donc édité /etc/crontab et ajouté mes cron "à la main". Je verrai demain si tout à fonctionné correctement car les commandes doivent être lancées vers 3h du matin. En espérant que ça va marcher... ^o^

Poste le Tuesday 25 October 2005 16:06:55
Répondre     Citer    
Re: Crontab
Envoyé par: Sve@r

Citation
Mathieu
Voilà, j'ai donc édité /etc/crontab et ajouté mes
cron "à la main". Je verrai demain si tout à
fonctionné correctement car les commandes doivent
être lancées vers 3h du matin. En espérant que ça
va marcher...
Oui mais comme je l'ai dit, une fois que la crontab a été changée, il te faut demander au process "cron" de la reprendre en compte => 3 solutions:
- /etc/rc.d/init.d/cron stop && /etc/rc.d/init.d/cron start
- /etc/rc.d/init.d/cron restart
- kill -1 <pid_de_cron>


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Wednesday 26 October 2005 09:31:44
Répondre     Citer    
Re: Crontab
Envoyé par: Mathieu

La manipulation n'a pas fonctionné. Elle a bien été prise en compte après redémarrage du cron. Mais j'ai eu des message de warning du serveur envoyé sur l'email root. Trois erreurs correspondant aux trois tâches enregistrées à 3h, 3h15 et 3h30 et plus tard vers 7h, j'ai eu trois alertes CPU... 8-o :-(

J'ai donc du retirer mes cron du fichier /etc/crontab.

Je suis donc toujours sans solution.... :,(

Help !

Poste le Thursday 3 November 2005 22:39:03
Répondre     Citer    
Crontab - Prtoblème résolu
Envoyé par: Mathieu

J'ai réglé mon problème !

Tout d'abord il fallait faire un wget directement sur le .php qui génère le xml ce qui provoque le téléchargement du xml.

Par ailleurs la fonction lynx que j'ai sur le serveur (2.8.3) est buggée. ^o^ La fonction lynx fonctionne en ligne de commande mais pas dans les scripts puisqu'elle cherche à initialiser le terminal dans tous les cas. (d'où un message "Your terminal lacks the ability to clear the screen or position the cursor." du deamoncron à chaque lancement du script.


Il faut donc faire un :

wget -O xml.php pour rappatrier le xml [pour rappatrier le fichier]
wget --output-document=- http:// .... [pour lancer mon php qui parse le xml] ;-)

Et voilà ! ;-p

Poste le Wednesday 23 November 2005 12:03:17
Répondre     Citer    
Crontab - Problème résolu
Envoyé par: Mathieu

Je précise que j'ai mis les 2 wget dans un script .sh avec les droits d'exécution dans le répertoire /etc/cron.daily pour la lancer tous les matins. Avec un Cobalt Raq550, impossible d'éditer la crontab avec crontab -e, ça ne marche pas ! ;-)

Poste le Wednesday 23 November 2005 12:06:24
Répondre     Citer    
Pb Crontab : faut il etre logger??
Envoyé par: florent79

je vien de parametrer une cron avec l'utilisateur root sur mon serveur de dev qui me permet de lancer un batch de sauvegarde de base de données. la cron fonctionne bien mais à une condition : qu'il y ait l'utilisateur root de logger. evidemment j'accede a mon serveur via des partages samba et je ne suis donc jamais logger dessus en root (sauf en mode paramétrage) et donc la cron ne fonctionne pas. ya-til un moyen de lancer une tache periodiquement sur mon serveur tout en n'etant pas logger?

PS : mon serveur linux est une mandriva corporate serveur 4 avec LAMP uniquement
Merci

Poste le Monday 30 April 2007 16:23:41
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Crontab
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons