web-dev-qa-db-fra.com

Quelle est la différence entre cron.d (comme dans /etc/cron.d/) et crontab?

Quelle est la principale différence entre le répertoire cron.d (comme dans /etc/cron.d/) et crontab?

Autant que je sache, on pourrait créer un fichier comme /etc/cron.d/my_non_crontab_cronjobs et y mettre tout ce que l'on veut, comme on le mettrait dans crontab via crontab -e.

Quelle est donc la principale différence entre les deux?

18
Arcticooling

Les différences sont documentées en détail dans la page de manuel cron(8) dans Debian. La principale différence est que /etc/cron.d est rempli de fichiers séparés, tandis que crontab gère un fichier par utilisateur; il est ainsi plus facile de gérer le contenu de /etc/cron.d en utilisant des scripts (pour une installation et des mises à jour automatisées), et plus facile à gérer crontab en utilisant un éditeur (pour les utilisateurs finaux vraiment).

D'autres différences importantes sont que toutes les distributions ne prennent pas en charge /etc/cron.d, et que les fichiers dans /etc/cron.d doivent répondre à un certain nombre d'exigences (au-delà d'être des tâches cron valides): elles doivent appartenir à root et doivent être conformes à run-parts ’Conventions de dénomination ( pas de points , uniquement des lettres, des chiffres, des traits de soulignement et des tirets).

Si vous envisagez d'utiliser /etc/cron.d, il vaut généralement la peine d'envisager l'un des /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, ou /etc/cron.monthly au lieu.

24
Stephen Kitt

Je dirais que la principale différence est évidente: /etc/crontab et /etc/cron.d ne sont pas modifiables par les utilisateurs réguliers, tandis que les crontabs par utilisateur dans /var/spool/cron que sont les modifications de l'outil crontab. (Sujet à cron.allow et cron.deny, bien sûr.) Bien sûr, sur un système dont vous êtes l'administrateur, vous pouvez utiliser l'un ou l'autre. Sur un système partagé, les utilisateurs réguliers ne peuvent en utiliser qu'un.

Le champ supplémentaire dans les fichiers à l'échelle du système, le nom d'utilisateur sous lequel le travail s'exécute est lié à cela.

5
ilkkachu