Différence entre / etc / crontab et “crontab -e”


42

Quelle est la différence entre la crontab située dans /etc/crontabet la crontab pouvant être modifiée crontab -e?

Réponses:


51

Comme Ignacio l’a dit, /etc/crontabc’est la crontab à l’échelle du système.

Le format de /etc/crontabest comme ça:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

Bien que cela crontab -esoit par utilisateur, il vaut la peine de mentionner sans -uargument que la commande crontab va à la crontab de l’utilisateur actuel. Vous pouvez faire crontab -e -u <username>pour éditer une crontab d'utilisateurs spécifique.

Notez que dans une table de contrôle par utilisateur, il n'y a pas de champ 'utilisateur'.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

Un aspect des crontabs qui peut prêter à confusion est que root possède également sa propre crontab. par exemple, crontab -e -u rootne pas éditer /etc/crontab Voir Configuration de cron .

Dans la plupart des distributions Linux, les crontabs par utilisateur sont généralement stockés dans: /var/spool/cron/crontabs/<username>(vixie-cron).

Les distributions basées sur RHEL sont stockées dans /var/spool/cron/<username>. (cronie)


Pour info, le chemin donné ci-dessus est incorrect: les crontabs par utilisateur sont stockés dans / var / spool / cron / crontabs / <nom d'utilisateur> (j'ai essayé à deux reprises de soumettre cette correction simple.)
MartyMacGyver le

1
... et c'est corrigé maintenant.
MartyMacGyver

En fait, il est stocké dans /var/spool/cron/rootla crontab de l'utilisateur root sur un système RHEL 6. Je n'ai pas vérifié Ubuntu, mais dire "typiquement" semble un peu exagéré.
Wildcard

@Wildcard Je pense que "typiquement" est un mot juste à utiliser. Les distributions RHEL sont livrées avec "cronie" (et l'anacron, je crois), qui est leur fourche d'ISC-Cron / Vixie Cron. Je ne pense pas que ce soit exagéré. De toute façon, j’ai mis à jour ma réponse pour y inclure plus de détails.
skrewler

Pour une recherche rapide des chemins entre les distributions, recherchez la chaîne path[crontabs]dans la bibliothèque "chemins" de CFEngine et vérifiez le contexte (les lignes de contexte précédentes ressemblent par exemple redhat::). Il y a plus de variation que vous ne le pensez; SUSE les met par exemple /var/spool/cron/tabs. (Résoudre les différences de distribution est l'une des raisons pour lesquelles CFEngine a été créé, c'est donc souvent une bonne référence.)
Wildcard

5

L'une est la crontab système et ne peut être modifiée que par root, l'autre est la crontab utilisateur. Elle peut être modifiée par un utilisateur et existe par utilisateur.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.