46 votes

Journal des actions cron sur OS X

Le cron fourni avec OS X enregistre-t-il ses actions quelque part ?

Je ne cherche pas la sortie d'un travail cron particulier, mais plutôt le journal de ce que fait cron. Sur quelques machines linux que j'ai vérifiées, il y a /var/log/cron dont le contenu est le suivant

Apr 26 11:00:01 localhost crond[27755]: (root) CMD (/root/bin/mysql-backup)
Apr 26 11:01:01 localhost crond[27892]: (root) CMD (run-parts /etc/cron.hourly)
Apr 26 11:07:01 localhost crond[28138]: (root) CMD (/usr/local/bin/python /home/
user1/scripts/pythonscript.py)
Apr 26 11:18:18 localhost crontab[28921]: (user2) LIST (user2)
Apr 26 11:18:22 localhost crontab[28929]: (user2) BEGIN EDIT (user2)
Apr 26 11:18:59 localhost crontab[28929]: (user2) REPLACE (user2)

Cela permet de savoir quand les tâches ont été exécutées, quand les utilisateurs ont consulté ou modifié les crontabs, etc. Je n'ai trouvé ces informations nulle part sur ma machine Snow Leopard.

52voto

phil Points 544

Il est beaucoup plus facile d'ajouter ce qui suit au fichier /etc/syslog.conf :

cron.*      /var/log/cron.log

Redémarrer ensuite syslog

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

Testé et fonctionnant sur OSX 10.7.4

13voto

Keith Sirmons Points 2558

J'ai trouvé comment enregistrer l'activité de mes tâches cron sans les basculer toutes dans des tâches launchd.

En Page de manuel cron mentions -x qui active "l'écriture des informations de débogage sur la sortie standard". Un effet secondaire est que ces options écrivent également des informations de base sur l'erreur standard. Les données envoyées à l'erreur standard sont écrites dans /var/log/system.log .

Il en résulte que des données comme celles-ci sont écrites dans /var/log/system.log :

debug flags enabled: misc
[42073] cron started
log_it: (user1 42084) CMD (/root/bin/mysql-backup)
log_it: (user1 42094) CMD (run-parts /etc/cron.hourly)

Puisque cron est lui-même lancé par launchd, j'ai dû éditer /System/Library/LaunchDaemons/com.vix.cron.plist de sorte qu'il se présente maintenant comme suit :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.vix.cron</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/cron</string>
        <string>-x</string>
        <string>misc</string>
    </array>
    <key>KeepAlive</key>
    <dict>
        <key>PathState</key>
        <dict>
            <key>/etc/crontab</key>
            <true/>
        </dict>
    </dict>
    <key>QueueDirectories</key>
    <array>
        <string>/usr/lib/cron/tabs</string>
    </array>
    <key>EnableTransactions</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/var/log/cron.log</string>
</dict>
</plist>

J'ai utilisé -x misc ici, mais les options que j'ai utilisées ne semblaient pas avoir d'importance. L'ajout de l'option -x a commencé l'enregistrement de l'activité professionnelle. J'ai également ajouté le chemin d'accès StandardErrorPath pour écrire dans /var/log/cron.log au lieu de l'option par défaut /var/log/system.log .

Puis déchargez et rechargez ceci :

$ sudo launchctl
Password:
launchd% unload /System/Library/LaunchDaemons/com.vix.cron.plist 
launchd% load /System/Library/LaunchDaemons/com.vix.cron.plist

1voto

mmmmmm Points 5716

OSX tend maintenant à utiliser launchd plutôt que cron - Document de développement d'Apple - Il se peut donc qu'il n'y ait rien à enregistrer dans le cron.

Utilisez launchctl pour contrôler le niveau de journalisation de launchd. Certaines informations apparaissent dans system.log mais d'autres dans l'application console -> All messages

-1voto

Jason Anderson Points 2752

Au moins sur Yosemite, cron enregistre la sortie sous la forme suivante mail Utilisez donc la fonction mail pour les lire.

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