3 votes

Les tâches cron de l'utilisateur ne fonctionnent pas mais les tâches du système fonctionnent

Ne posterais pas ici si je n'avais pas essayé tout ce que j'ai pu trouver sur l'interwebs... j'apprécierais tout conseil d'un sysadmin expérimenté.

Voici mon problème : les tâches cron dans /etc/cron.daily, /etc/cron.hourly etc. s'exécutent correctement sur mon serveur Ubuntu Slicehost -- leur exécution est consignée à la fois dans /var/log/syslog et /var/log/cron.log

J'ai créé deux tâches cron de test, une en tant que root et une en tant qu'utilisateur administrateur, via crontab qui sont censées s'exécuter toutes les minutes. Voici la sortie de crontab -l exécutée en tant que root

$ crontab -l
* * * * * /bin/date > /tmp/unicorns
$ crontab -u neil0 -l
* * * * * /home/neil0/crontab/unicorn.sh >> /home/neil0/logs/crontab.log >&1

EDIT 1: Je n'ai pas copié exactement ceci... il n'y avait pas de nouvelle ligne dans la sortie et c'était la source du problème

voici le contenu de unicorn.sh

#!/bin/sh
echo 'UNICORNS'

mais ni /home/neil0/logs/crontab.log ni /tmp/unicorns ne sont mis à jour, et il n'y a aucun enregistrement de ces tâches qui s'exécutent dans /var/log/syslog ou /var/log/cron.log!

avant que vous ne demandiez, il semble que cron fonctionne --

$ ps aux | grep cron
root      1588  0.0  0.1  18616   980 ?        Ss   12:31   0:00 /usr/sbin/cron
root      1798  0.0  0.1   3944   604 pts/0    R+   13:01   0:00 grep cron

au cas où vous vous poseriez la question, 'licorne' est mon mot de remplacement pour la frustration depuis un certain couac de débogage avec un site web en direct donc voilà je suis plus ou moins à bout ici. toute aide serait grandement appréciée.

7voto

T1M0THY Points 79

Euh...huh. donc comme je suppose que la plupart d'entre vous le savent déjà, vous devez terminer vos fichiers crontab par une nouvelle ligne. c'était tout le problème. j'espère que cela aidera quelqu'un d'autre

0voto

Oleg Barkov Points 1

N'oubliez pas qu'en crontab, contrairement à dans un shell, vous devez échapper les caractères spéciaux, c'est-à-dire

0 0 * * * backup_command > /var/log/backup-$(date +**\\**%a).log

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X