OVH Cloud OVH Cloud

Probleme de cron

3 réponses
Avatar
Fabien LE LEZ
Bonjour,

Si je tape

crontab nouveau_cron.txt -u fabien

en tant que root, j'ai le message suivant :

unable to create /var/spool/cron/crontabs}

Tout ça marchait très bien hier, et je ne sais pas du tout ce que j'ai
pu faire entre-temps pour casser ça. D'où le "}" final peut-il bien
sortir ?

Je précise que le répertoire "/var/spool/cron/crontabs" (sans le "}")
existe bien.

D'autre part, en "bricolant", ça marche (mais avec le message
d'erreur) :
cp nouveau_cron.txt /var/spool/cron/crontabs/fabien
crontab nouveau_cron.txt -u fabien

Merci d'avance...

3 réponses

Avatar
François Patte
Bonjour,

Si je tape

crontab nouveau_cron.txt -u fabien


man crontab donne:

crontab [ -u utilisateur ] fichier

et non

crontab fichier [ -u utilisateur ]


--
François Patte
Université Paris 5 - Paris

Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:,
*Fabien LE LEZ* tapota sur f.c.o.l.configuration :

Bonjour,

crontab nouveau_cron.txt -u fabien
unable to create /var/spool/cron/crontabs}


Vu la syntaxe de la commande et vu le message d'erreur, j'en déduis que le
crontab utilisé ici est celui provenant du cron de Dillon.
Avec celui-ci, ça se passe selon les étapes suivantes :

- vérification de l'uid de fabien et récupération du nom de
l'utilisateur à partir de l'uid
- ouverture du fichier nouveau_cron.txt et création du file descriptor
- changement du répertoire courant vers /var/spool/cron/crontabs
- création ou écrasement s'il existe du fichier fabien.new
- écriture du contenu de nouveau_cron.txt dans fabien.new
- renommage du fichier fabien.new en fabien.

Dans votre cas, c'est la création ou l'écrasement du fichier fabien.new dans
le répertoire /var/spool/cron/crontabs qui semble poser problème ou alors la
récupération du nom de l'utilisateur à partir de l'uid qui est incorrecte et
qui sert à déterminer le nom du fichier .new à créer dans
/var/spool/cron/crontabs.

Tout ça marchait très bien hier, et je ne sais pas du tout ce que j'ai
pu faire entre-temps pour casser ça. D'où le "}" final peut-il bien
sortir ?


Ça ressemble à une corruption du binaire crontab. Ou alors d'une
bibliothèque (mais j'en doute).
Je vous invite à tracer ce que fait la commande crontab avec l'utilitaire
strace et à voir quel nom de fichier crontab tente d'ouvrir après le
changement du répertoire vers /var/spool/cron/crontabs.

Je précise que le répertoire "/var/spool/cron/crontabs" (sans le "}")
existe bien.


Par précaution, vérifiez que les permissions sont correctes et que le
système de fichier n'est pas corrompu.

--
Sébastien Monbrun aka TiChou

Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:446f271f$0$20163$,
*François Patte* tapota sur f.c.o.l.configuration :

crontab nouveau_cron.txt -u fabien


man crontab donne:

crontab [ -u utilisateur ] fichier

et non

crontab fichier [ -u utilisateur ]


Ça c'est le man du crontab de Paul Vixie. Fabien LE LEZ utilise, à priori,
le crontab de Matt Dillon et le man dit bien :

$ man crontab

NAME
crontab - manipulate per-user crontabs (Dillon's Cron)

SYNOPSIS
crontab file [-u user] - replace crontab from file

--
Sébastien Monbrun aka TiChou