12 votes

Dois-je utiliser cron.hourly ou crontab ?

Il semble que toutes les suggestions pour utiliser/planifier awstats se font via crontab, comme tel : 0 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mysite -update >/dev/null (en exécutant awstats toutes les heures).

Cependant, si je vérifie crontab -l il est indiqué que la crontab est vide pour mon utilisateur.

Cependant, lorsque je vérifie le /etc/cron.hourly J'ai un fichier awstats avec les données suivantes :

#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall.pl now         -configdir="/etc/awstats"           -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0

Juste pour vous informer, mon awstats est bien mis à jour, il crée ses rapports, et tout va bien.

L'exécution d'une commande crontab crée-t-elle une entrée dans le dossier cron spécifié (c'est-à-dire cron.hourly ou cron.daily, etc.) ? Ou bien n'ont-ils aucun rapport entre eux ? S'ils sont liés, pourquoi mon utilisateur n'a-t-il pas d'entrée crontab ?

15voto

Stefan Lasiewski Points 22459

crontab -e est la manière traditionnelle de créer une crontab. Je la trouve maladroite et démodée, mais les gens l'utilisent encore.

/etc/cron.hourly dont cron.daily , cron.weekly & /etc/cron.d etc. sont fournis par la plupart des distributions Linux parce qu'ils sont pratiques et fonctionnent bien avec des outils d'automatisation comme les gestionnaires de paquets et les systèmes de gestion de configuration. Il est très facile pour un gestionnaire de paquets de déposer un fichier dans le dossier /etc/cron.hourly/foo par rapport à la modification par script d'une crontab existante. L'édition programmée d'un fichier par le biais d'un gestionnaire de paquets peut corrompre le fichier, ajouter des entrées en double, supprimer la mauvaise ligne, altérer les commentaires, etc. Voir Editfiles considérés comme nuisibles pour une discussion, car ce problème existe depuis un certain temps.

L'exécution d'une commande crontab crée-t-elle une entrée dans le dossier cron spécifié ?

Non. /etc/cron.daily/foo est créé par le gestionnaire de paquets, ou créé à la main. Il n'est pas créé lorsque vous exécutez la commande crontab. crontab -e créera la crontab sous /var comme /var/spool/cron/root .

Je préfère /etc/cron.$period/foo y /etc/cron.d parce que cette hiérarchie est ordonnée et organisée, et il est facile de script pour mon système de gestion de la configuration. /etc/crontab est également disponible sous Linux, mais il est un peu monolithique et difficile à modifier par programme. Des systèmes comme FreeBSD supportent /etc/crontab y /etc/periodic .

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