Comment se fait-il que crontab -e soit différent de less / etc / crontab?

Im assez nouveau à unix et crons, j'étais sur le point d'essayer d'append crons à un file cron existant. Je lis que tu pourrais faire ça avec crontab -e . La chose confuse pour moi est juste que crontab -e montre différents crons / commands que less /etc/crontab – comment se fait-il? Lequel est le bon path / file à éditer?

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

crontab -e édite le file crontab de l'user (stocké dans le directory /var/spool/cron/crontabs/ sur les systèmes Debian actuels, mais YMMV) ou en crée un nouveau, et non pas /etc/crontab . Similaire pour crontab -l (list crontab) et crontab -r (suppression du file crontab).

Pour tous les travaux cron qui doivent être exécutés sous le count d'un user, vous devez utiliser crontab -e . Pour les tâches système, vous devez append un file 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 but; ou ajoutez une ligne à /etc/crontab . Mais sachez que /etc/crontab pourrait être écrasé par une mise à jour du système.

Vous voulez vraiment lire les pages de manuel man cron et man crontab

Voici un extrait qui couvre votre question. De l' man cron

NOTES cron search sa zone de spoule (/ var / spool / cron / crontabs) pour les files crontab (qui sont nommés d'après les counts dans / etc / passwd); crontabs trouvés sont chargés dans la memory. Notez que les crontabs de ce directory ne devraient pas être accessibles directement – la command crontab devrait être utilisée pour les 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, ie 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.