web-dev-qa-db-fra.com

Pourquoi mon crontab ne marche pas

J'ai ce cron

38 * * * * /bin/bash -l -c 'cd /var/Rails/site/releases/20120705144335 && script/Rails runner -e qa '\''Play.load_lists'\'''

J'ai ce cron sous l'utilisateur différent, donc je change aux utilisateurs de déployer

Sudo su deploy
crontab -e

et je vois mon cron puis je quête du journal sous l'utilisateur root

tail -n300 -f /var/log/syslog

et je vois mon cron

Jul  5 11:38:01 ip-10-70-75-234 CRON[4971]: (deploy) CMD (/bin/bash -l -c 'cd /var/Rails/site/releases/20120705144335 && script/Rails runner -e qa '\''Play.load_lists'\''')
Jul  5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)

Mais le cron n'est pas en cours d'exécution ou il y a un problème de permission ... Quand je cours la tâche dans la console, cela fonctionne bien mais pas dans le cron ... aucune idée de ce que je manque

c'est ubuntu 12.04 lts

Peut-être que je peux enregistrer une liste plus détaillée à quelque part pour voir les erreurs

12
Matt Elhotiby

Cron fournit la sortie d'applications (STDOUT, STDERR) via un courrier local. Ubuntu n'ayant apparemment pas de MTA (agent de transfert de courrier) installé par défaut ces jours-ci. Cron imprime une notification dans le logfile Systems à chaque fois qu'une livraison a échoué:

Jul  5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)

Vous pouvez installer un MTA, par exemple. Postfix, pour une utilisation interne (locale) uniquement, par ex.

aptitude install postfix

Lors de l'installation, il vous sera demandé quelle configuration par défaut à utiliser. Vous devriez sélectionner le Local only configuration.

Ensuite, vous pouvez trouver la sortie des applications couru par cron en utilisant

tail -f /var/mail/<your_username>

Bien sûr, vous pouvez également écrire la sortie de journalisation dans un fichier journal dédié ou tuyau/rediriger la sortie dans un fichier à l'aide de la fonctionnalité de shell intégrée ...

17
moooeeeep