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?
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.
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.
/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.Vous voulez vraiment lire les pages de manuel
man cron
etman crontab
Voici un extrait qui couvre votre question. De
man cron
la source
cron
est quelque chose qui varie beaucoup d'un OS à l'autre et sur certains, vous pouvez choisir entre plusieurs implémentations.