Pourquoi crontab -e est différent de less / etc / crontab?


11

Im assez nouveau pour unix et crons, j'étais sur le point d'essayer d'ajouter crons à un fichier cron existant. J'ai lu que tu pouvais faire ça avec crontab -e. La chose déroutante pour moi est juste que cela crontab -emontre des crons / commandes différents de less /etc/crontab- comment ça se fait? Lequel est le bon moyen / fichier à modifier?

Réponses:


14

Bien que la réponse de @X Tian contienne des informations sur les différents fichiers pour crontab, les informations essentielles concernant votre question sont les suivantes:

crontab -eédite le fichier crontab de l'utilisateur (stocké dans le /var/spool/cron/crontabs/répertoire sur les systèmes Debian actuels, mais YMMV) ou en crée un nouveau, et non /etc/crontab. Similaire pour crontab -l(lister le fichier crontab) et crontab -r(supprimer le fichier crontab).

Pour tous les travaux cron qui doivent être exécutés sous le compte d'un utilisateur, vous devez utiliser crontab -e. Pour les travaux système, vous devez ajouter un fichier sous /etc/cron.d, s'il existe; sous /etc/cron.{hourly|daily|weekly|monthly}(mais ceux-ci ne doivent pas être nommés comme un nom de package!), si cela correspond à votre objectif; ou ajoutez une ligne à /etc/crontab. Mais sachez que cela /etc/crontabpourrait être remplacé par une mise à jour du système.


@Stephane Chazelas Merci d'avoir clarifié avec votre montage. Le /var/spool/cron/répertoire est une spécialité Linux (voir la norme de hiérarchie des fichiers ) et l'emplacement peut varier sur des systèmes autres qu'une Debian actuelle.
Dubu

3

Vous voulez vraiment lire les pages de manuel man cronetman crontab

Voici un extrait qui couvre votre question. Deman cron

NOTES cron recherche dans sa zone de spoule (/ var / spool / cron / crontabs) les fichiers crontab (qui sont nommés d'après les comptes dans / etc / passwd); les crontabs trouvés sont chargés en mémoire. Notez que les crontabs de ce répertoire ne doivent pas être accessibles directement - la commande crontab doit être utilisée pour y accéder et les mettre à jour.

   cron also reads /etc/crontab, which is in a slightly  different  format
   (see  crontab(5)).   Additionally, cron reads the files in /etc/cron.d:
   it treats  the  files  in  /etc/cron.d  as  in  the  same  way  as  the
   /etc/crontab  file  (they  follow the special format of that file, i.e.
   they  include  the  user  field).  However,  they  are  independent  of
   /etc/crontab:  they  do  not, for example, inherit environment variable
   settings from it. The intended purpose of  this  feature  is  to  allow
   packages  that  require  finer  control  of  their  scheduling than the
   /etc/cron.{daily,weekly,monthly} directories to add a crontab  file  to
   /etc/cron.d. Such files should be named after the package that supplies
   them. Files must conform to the same naming convention as used by  run-
   parts(8):  they  must  consist solely of upper- and lower-case letters,
   digits, underscores, and hyphens. If the -l option is  specified,  then
   they must conform to the LSB namespace specification, exactly as in the
   --lsbsysinit option in run-parts.

1
Vous devez spécifier quelle implémentation cron et quelle version de celle-ci sur quel système d'exploitation et quelle version de celle-ci vous citez cela. cronest quelque chose qui varie beaucoup d'un OS à l'autre et sur certains, vous pouvez choisir entre plusieurs implémentations.
Stéphane Chazelas
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.