Quand j'ai remarqué que le script de sauvegarde que j'ai placé dans /etc/cron.weekly sur mon serveur Debian6 n'est pas exécuté, j'ai placé ce petit script dedans, pour voir si le cronjob hebdomadaire est exécuté:
#!/bin/bash
echo 'CRON RAN' > /var/log/cron-weekly-runcheck.log
enregistré sous
-rwxr-xr-x 1 root root 64 Jul 15 02:14 /etc/cron.weekly/runcheck.sh
Lorsque j'ai vérifié aujourd'hui, le fichier journal qu'il était censé créer n'existait pas.
Le crontab ressemble à ce qui suit (qui devrait être le crontab debian6 par défaut à ma connaissance):
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 1 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Tout ce qui apparaît du cronjob hebdomadaire dans tous les fichiers journaux est cette ligne:
Jul 16 06:47:01 wtwrp /USR/SBIN/CRON[29272]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
Note latérale: cron.daily
semble fonctionner depuis que logrotate fonctionne. cron.hourly
ne contient aucun script.
Des idées sur ce qui pourrait mal tourner?
bash
cron
debian-squeeze
Cobra_Fast
la source
la source
/var/spool/mail/root
si vous n'avez pas encore/etc/aliases
configuré pour transférer le courrier de root quelque part où il peut être lu.cron.weekly
là-dedans.Réponses:
Les
cron.weekly
scripts sont démarrés parrun-parts
lesquels saute tous les fichiers avec l'extension. Renommerruncheck.sh
pourruncheck
et il devrait fairela source
comm1 || comm2 || comm3 || comm4
sera exécuté jusqu'à ce que le premier retval = 0 soit renvoyé (de gauche à droite). Le reste des commandes chaînées sont optimisées par l'interpréteur et NON exécutées du tout
Si
test -x /usr/sbin/anacron
renvoie zéro comme retval, aucune autre commande ne sera exécutée.la source