Question

Merci de me aider la mise en mes tâches cron, crontab a vraiment été une mine d'or pour moi.

Malheureusement, j'ai un problème, et ne savent pas ce que si jamais ce qu'il pourrait être ... essentiellement un emploi ne démarre pas alors que les emplois voisins font. Je vais vous expliquer


Ceci est ma crontab liste des tâches:

  

* / 10 * * * * fetch_articles de /webapps/foo/manage.py python

     

* / 10 * * * * fetch_books de /webapps/bar/manage.py python

Je leur ai écrit comme dans un fichier et les stockés en utilisant crontab / chemin / vers / fichier.

vérifié avec crontab -l et les emplois sont là.


La chose étrange est que 1 de ces 10 minutes exécute tous normalement ... mais l'autre n'a pas. J'ai essayé de taper la commande manuellement, et il fonctionne très bien sans problème.


Quelqu'un at-il des suggestions?

L'aide serait très apprécié, merci les gars.


Mise à jour:

Je suis dans les fichiers journaux du système et je trouve ceci:

  

5 mars 02:50:01 localhost CRON [21652]: (root) CMD (fetch_books python de /webapps/foo/manage.py)

Est-ce crontab moyenne appelle l'amende de travail?


Merci pour vos réponses les gars!


fixe IT! je vous remercie beaucoup tout le monde !!

Le problème est que le script a échoué en silence, je crois qu'il est dû à l'PYTHON_PATH changer en raison de l'endroit où le script est appelé à partir ... Je suis tout à fait sûr.

Était-ce utile?

La solution

Cron fonctionne toujours dans un environnement différent de ce que vous pensez: -)

J'ai toujours mes cronjobs mis en place comme:

*/10 * * * * ( date ; python /webapps/foo/manage.py fetch_articles ) >>/tmp/fetch.out 2>&1

pour assurer qu'il ya quelque chose connecté que je peux regarder.

Ceci permettra de réduire votre problème à soit:

  • Cron, si le fichier temporaire ne semble pas; ou
  • votre script, si elle n'apparaît.

Et, dans ce dernier cas, je l'espère, il y aura une sortie, vous pouvez déboguer. Sinon, mettez la sortie là-dedans.

Une façon de le faire est de mettre:

set -x

en haut du script qui entraînera toutes les lignes à sortir avant l'exécution. Tous mes scripts ont tendance à commencer:

#!/bin/bash
#set -x

donc je peux juste décommentez deuxième ligne lors du débogage.

Autres conseils

De la page de manuel crontab:

  

BUGS          Bien que Cron exige que chaque entrée dans une extrémité crontab dans un   retour à la ligne ,          ni la commande crontab ni le démon cron détecte ce   Erreur. Au lieu,          le crontab apparaîtra charger normalement. Cependant, la commande   ne sera jamais exécuté.           Le meilleur choix est de faire en sorte que votre crontab a une ligne blanche   la fin.

(je souligne).

Je pense que ~ la réponse de unutbu est probablement correcte si elle est le deuxième emploi qui ne fonctionne pas.

Cependant, une autre chose à vérifier est de savoir si /webapps/bar/manage.py nécessite un accès exclusif aux ressources, prises réseau, par exemple / tempfiles etc. Puisque vous commencez 2 processus en même temps, vous pouvez déclencher une condition de course.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top