Comment puis-je savoir si des emplois ont été / sont performants? - Crontab
Question
J'ai suivi la suggestion dans cette question
J'utilise Django, j'ai mis le script à jour du magasin et l'heure de chaque exécution du script dans la db, mais pas d'entrée a été encore enregistrée dans la base de données.
Est-il possible de comprendre, autre que de taper « top » et la recherche par le biais?
La solution
D'abord, je voudrais probablement configurer cron pour vous envoyer une sortie en utilisant MAILTO
:
Dans / etc / crontab:
MAILTO=username
En second lieu, je l'habitude d'ajouter quelque chose à mon script (presque) ne peut manquer peut-être, comme suit:
#!/bin/sh
echo "$0 ran on `date +%c`" >> /tmp/crontab_test.log
# ... rest of program
Si vous appelez un script python directement à partir Cron, vous pourriez faire quelque chose de similaire ou créer un script shell wrapper.
Autres conseils
Si vous avez sendmail installé, vous pouvez ajouter ce qui suit à '/ etc / alias'
root: your_name@domain.com
Une fois que vous faites cela, mettez à jour les alias exécutant cette commande:
sudo newaliases
Cron vous enverra automatiquement à chaque fois qu'un travail est exécuté. Pas besoin de préciser que dans le fichier crontab.
En outre, assurez-vous de test vos capacités de messagerie (par exemple, assurez-vous que vous êtes en mesure d'envoyer des e-mails à partir du serveur) et enfin, créer un cronjob trivial et test si vous recevez un e-mail.
Ne présumez pas!
En plus de la mise en place cron pour envoyer un email, vous pouvez envoyer la sortie de Cron à une installation de journal séparé syslog en ajoutant ce qui suit à votre /etc/syslog.conf
.
# Log cron stuff cron.* /var/log/cron.log
Cela devrait enregistrer un message à /var/log/cron.log chaque fois qu'un travail est exécuté.