¿Cómo es que crontab -e es diferente de less / etc / crontab?
11
Soy bastante nuevo en Unix y crons, actualmente estaba a punto de intentar agregar crons a un archivo cron existente. Leí que podrías hacer esto con crontab -e. Lo confuso para mí es solo que crontab -emuestra diferentes crons / comandos que less /etc/crontab, ¿cómo es que? ¿Cuál es la forma / archivo correcto para editar?
Aunque la respuesta de @X Tian contiene información sobre los diferentes archivos para crontab, la información esencial sobre su pregunta es esta:
crontab -eedita el archivo crontab del usuario (almacenado en el /var/spool/cron/crontabs/directorio en los sistemas Debian actuales, pero YMMV) o crea uno nuevo, y no /etc/crontab. Similar para crontab -l(listar el archivo crontab) y crontab -r(eliminar el archivo crontab).
Para todos los trabajos cron que deben ejecutarse bajo la cuenta de un usuario, debe usar crontab -e. Para los trabajos del sistema, debe agregar un archivo debajo /etc/cron.d, si existe; debajo /etc/cron.{hourly|daily|weekly|monthly}(¡pero no se debe nombrar como un nombre de paquete!), si eso se ajusta a su propósito; o agregue una línea a /etc/crontab. Pero tenga en cuenta que /etc/crontabpodría sobrescribirse con una actualización del sistema.
@Stephane Chazelas Gracias por aclarar con tu edición. El /var/spool/cron/directorio es una especialidad de Linux (consulte el Estándar de jerarquía de archivos ) y la ubicación puede variar en sistemas que no sean Debian actuales.
Dubu
3
Realmente quieres leer las páginas del manual man cronyman crontab
Aquí hay un extracto que cubre su pregunta. Deman cron
NOTAS cron busca en su área de spool (/ var / spool / cron / crontabs) archivos crontab (que llevan el nombre de las cuentas en / etc / passwd); los crontabs encontrados se cargan en la memoria. Tenga en cuenta que no se debe acceder directamente a los crontabs en este directorio: se debe usar el comando crontab para acceder a ellos y actualizarlos.
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.
Debe especificar qué implementación de cron y qué versión de la misma en qué sistema operativo y de qué versión está citando. crones algo que varía mucho de un sistema operativo a otro y en algunos puedes elegir entre varias implementaciones.
/var/spool/cron/
directorio es una especialidad de Linux (consulte el Estándar de jerarquía de archivos ) y la ubicación puede variar en sistemas que no sean Debian actuales.Realmente quieres leer las páginas del manual
man cron
yman crontab
Aquí hay un extracto que cubre su pregunta. De
man cron
fuente
cron
es algo que varía mucho de un sistema operativo a otro y en algunos puedes elegir entre varias implementaciones.