2 votes

Intention de cron.d par rapport à la crontab de root

Dans une incroyable démonstration de pédanterie, un collègue et moi nous sommes disputés pendant des jours entiers sur l'utilisation prévue des différents emplacements d'une crontab.

Au cœur du problème se trouve un script de sauvegarde que nous utilisons pour pousser des archives de leurs données à nos clients. Certains veulent que ce soit hebdomadaire et d'autres le veulent exactement un certain jour de chaque mois - donc notre crontab actuelle est assez longue. L'utilitaire lui-même n'a rien d'exotique, juste un petit nœud script qui est déclenché périodiquement avec différents ensembles d'identifiants de clients qui lui sont passés.

Toutes les fonctions étant égales, quel est l'endroit le plus correct pour qu'un utilitaire place sa crontab ?

  • Dans la table personnelle des utilisateurs de la racine ( sudo crontab -e )
  • En /etc/crontab o /etc/cron.d

TL:DR ; Quelle est l'utilisation prévue des différents emplacements de cron ? Et où doit aller la programmation d'un utilitaire qui doit être exécuté sans interaction humaine ?

2voto

user9517 Points 113163

Comme il s'agit d'une tâche qui est une fonction du système, je dirais qu'il faut utiliser une crontab système. Quant à savoir lequel, je ne pense pas qu'il y ait vraiment de distinction et je n'ai pas vu de directive, même la FSH n'a pas grand-chose à dire. Sur un système CentOS 7, j'ai à la main man crontab(5) qui dit

Jobs dans /etc/cron.d/
Les tâches dans cron.d et /etc/crontab sont des tâches système, utilisées en général pour plusieurs utilisateurs. généralement pour plus d'un utilisateur, donc, le nom d'utilisateur supplémentaire est nécessaire. MAILTO sur la première ligne est optionnel.

J'utiliserais /etc/cron.d

0voto

John Jones Points 123

Je préfère personnellement faire les choses comme is the English way J'ai répondu, mais dans l'intérêt de l'équité, je me sens obligé de partager le fait que j'ai harcelé Paul Vixie (la plus haute autorité en la matière à laquelle j'ai pu penser) à ce sujet. Sa réponse a été que cela appartient à la crontab personnelle de root.

Moi : - cron système (/etc/crontab ou abstractions de celui-ci) contre crontab personnel de root.

P Vixie : ah. dans ce cas, mettez-le dans la crontab personnelle de root, et essayez d'utiliser la crontab système pour les choses du système d'exploitation (c'est-à-dire, ne la modifiez pas du tout).

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