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?

Jrdioko
la source

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)

skrewler
la source
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.

Ignacio Vazquez-Abrams
la source