Ubicación del archivo crontab


53

Como muchos (¿la mayoría?) Otros, edito mi crontab a través de crontab -e, donde mantengo todas las operaciones de rutina como copia de seguridad incremental, ntpdate, varias operaciones rsync, así como hacer que el fondo de mi escritorio sea temático navideño una vez al año. Por lo que he entendido, en una nueva instalación o un nuevo usuario, esto también crea automáticamente el archivo si no existe. Sin embargo, quiero copiar este archivo a otro usuario, entonces, ¿dónde está el archivo real que estoy editando?

Si esto varía entre las distribuciones, estoy usando Centos5 y Mint 17


15
+1 solo por hacer que su fondo de escritorio tenga un tema navideño una vez al año
Celada

55
@Celada Puede que no sea frecuente, pero es una tarea de rutina, sin embargo.
Jarmund

Respuestas:


54

La ubicación de los cronarchivos para usuarios individuales es /var/spool/cron/crontabs/.
De man crontab:

Cada usuario puede tener su propio crontab, y aunque estos son archivos /var/spool/cron/crontabs, no están destinados a ser editados directamente.


77
Las palabras clave allí son "no están destinadas a ser editadas directamente", por lo que esta respuesta está incompleta sin el siguiente comando de Celada, que proporciona una respuesta más segura a la parte de la pregunta "copiar a otro usuario". Si la gente tiene la costumbre de editar crontabs directamente sin enviarlos a través del comando crontab, renunciará a una buena comprobación de la cordura que proporciona el comando.
Monty Harder

@MontyHarder Estoy de acuerdo con que "no están destinados a ser editados directamente", pero qué pasa si es necesario, como si fuera necesario hacer una entrada en el crontab a través de un script bash. tienes que usar el archivo exacto, no creo que ninguna interfaz externa ayude en ese caso, corrígeme si estoy equivocado.
Prabhat Kumar Singh

@PrabhatKumarSingh Aún no debe editar directamente el archivo. Si lees el comando de Celada a continuación, habrías visto un ejemplo de cómo un script podría manipular un archivo crontab sin editarlo directamente. man crontabexplica cómo funciona esto.
Monty Harder

34

heemayl tiene razón sobre la ubicación de los archivos crontab en Linux, pero podría ser diferente en otros sistemas operativos y "teóricamente" también podría estar en una ubicación diferente en Linux. Esencialmente, cuando se proporciona una interfaz especial para acceder a los archivos, debe usarla. Esto garantizará que cronverifique los archivos antes de instalarlos, se asegurará de que los archivos tengan los permisos que necesita, etc.

Por lo tanto, debe copiar un crontab de un usuario a otro utilizando esa interfaz, de esta manera, no accediendo a los archivos directamente.

crontab -u <user1> -l | crontab -u <user2>

3
Hay muchas buenas razones por las cuales los archivos crontab no deben ser manipulados directamente por otra cosa que no sea el sistema operativo en sí. Esta es una solución mucho mejor. Realmente creo que debe incorporarse a la respuesta oficial.
Monty Harder

@MontyHarder No hay realmente una respuesta "oficial". Existe la respuesta que la persona que pregunta eligió como personalmente útil para él / ella (la que tiene la marca de verificación) y la respuesta que eligió la comunidad (con la mayoría de los votos positivos). En resumen, tienes 15 repeticiones, puedes sugerir que esta es la respuesta correcta al votarlo. Además, si desea sugerir mejoras a la otra respuesta, debe comentar esa respuesta; de lo contrario, su autor no será notificado de su comentario.
derobert

2
El corolario de esta respuesta es que uno debe redirigir la salida crontab -la un archivo, mover el archivo al otro sistema y canalizarlo a crontab. O tal vez incluso hacerlo directamente ( crontab -l | ssh $remote_host crontab).
Blacklight Shining

66
"cuando se proporciona una interfaz especial para acceder a los archivos, debe usarla". Sin embargo, imagine que cada aplicación proporciona una interfaz especial para editar archivos de configuración en lugar de exponerlos a través de fs. Esa sería una molestia para seguir.
Witiko

1
Como el autor de la pregunta original, creo que debería considerar esto: la respuesta aceptada fue elegida en base a mi pregunta en su sentido literal; La ubicación del archivo. Mis intenciones para ese archivo son irrelevantes. No creo que editar en la información adicional cambie la respuesta, pero podría considerarse superfluo.
Jarmund
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.