Come mai crontab -e è diverso da less / etc / crontab?


11

Sono abbastanza nuovo per unix e crons, al momento stavo per provare ad aggiungere croni a un file cron esistente. Ho letto che potresti farlo con crontab -e. La cosa confusa per me è solo che crontab -emostra croni / comandi diversi rispetto a less /etc/crontab- come mai ? Qual è il modo / file corretto da modificare?

Risposte:


14

Sebbene la risposta di @X Tian contenga informazioni sui diversi file per crontab, le informazioni essenziali relative alla tua domanda sono queste:

crontab -emodifica il file crontab dell'utente (memorizzato nella /var/spool/cron/crontabs/directory sui sistemi Debian correnti, ma YMMV) o ne crea uno nuovo e non /etc/crontab. Simile per crontab -l(elencare il file crontab) e crontab -r(rimuovere il file crontab).

Per tutti i lavori cron che devono essere eseguiti con l'account di un utente, è necessario utilizzare crontab -e. Per i lavori di sistema, è necessario aggiungere un file in /etc/cron.d, se esistente; sotto /etc/cron.{hourly|daily|weekly|monthly}(ma quelli non devono essere nominati come il nome di un pacchetto!), se questo si adatta al tuo scopo; o aggiungi una riga a /etc/crontab. Ma tieni presente che /etc/crontabpotrebbe essere sovrascritto con un aggiornamento del sistema.


@Stephane Chazelas Grazie per aver chiarito con la tua modifica. La /var/spool/cron/directory è una specialità di Linux (vedi File Hierarchy Standard ) e la posizione può variare su sistemi diversi da un Debian corrente.
Dubu,

3

Vuoi davvero leggere le pagine del manuale man croneman crontab

Ecco un estratto che copre la tua domanda. A partire dalman cron

NOTE cron cerca nella sua area di spool (/ var / spool / cron / crontabs) i file crontab (che prendono il nome dagli account in / etc / passwd); i crontab trovati vengono caricati in memoria. Si noti che non è possibile accedere direttamente ai crontab in questa directory: utilizzare il comando crontab per accedervi e aggiornarli.

   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
Dovresti specificare quale implementazione cron e quale versione dello stesso su quale sistema operativo e da quale versione stai citando. cronè qualcosa che varia molto da un sistema operativo all'altro e su alcuni è possibile scegliere tra diverse implementazioni.
Stéphane Chazelas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.