Diferencia entre / etc / crontab y "crontab -e"

42

¿Cuál es la diferencia entre el crontab ubicado en /etc/crontaby el crontab que se puede editar usando crontab -e?

jrdioko
fuente

Respuestas:

51

Como dijo Ignacio, /etc/crontabes el crontab de todo el sistema.

El formato de /etc/crontabes así:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

mientras crontab -ees por usuario, vale la pena mencionar sin -uargumento que el comando crontab va al crontab de los usuarios actuales. Puede hacer crontab -e -u <username>para editar un crontab de usuarios específico.

Observe que en un crontab por usuario no hay un campo 'usuario'.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

Un aspecto de crontabs que puede ser confuso es que root también tiene su propio crontab. por ejemplo crontab -e -u root, no editará /etc/crontab Consulte Configuración de cron .

En la mayoría de las distribuciones de Linux, los crontabs por usuario generalmente se almacenan en: /var/spool/cron/crontabs/<username>(vixie-cron).

Las distribuciones basadas en RHEL se almacenan en /var/spool/cron/<username>. (amigo)

skrewler
fuente
Para su información, la ruta dada anteriormente es incorrecta: los crontabs por usuario se almacenan en / var / spool / cron / crontabs / <username> (Intenté dos veces enviar esta corrección simple)
MartyMacGyver
1
... y está corregido ahora.
MartyMacGyver
En realidad, se almacena en /var/spool/cron/rootel crontab por usuario de root en un sistema RHEL 6. No he comprobado Ubuntu, pero decir "típicamente" parece un poco exagerado.
Comodín
@Wildcard Creo que "típicamente" es una palabra justa para usar. Las distribuciones de RHEL se envían con "cronie" (y anacron, creo), que es su bifurcación de ISC-Cron / vixie cron. No creo que sea exagerado, en cualquier caso, he actualizado mi respuesta para incluir más detalles.
skrewler
Para una búsqueda rápida de las rutas a través de las distribuciones, busque la cadena path[crontabs]en la biblioteca de "rutas" de CFEngine y verifique el contexto (las líneas de contexto anteriores se parecen, por ejemplo redhat::). Hay más variación de lo que piensas; por ejemplo, SUSE los coloca /var/spool/cron/tabs. (Resumir las diferencias de distribución es una de las razones por las que CFEngine se creó originalmente, por lo que a menudo es una buena referencia.)
Comodín el
5

Uno es el crontab del sistema y solo puede ser editado por root, y el otro es el crontab de usuario y puede ser editado por un usuario y existe por usuario.

Ignacio Vazquez-Abrams
fuente