¿Debo guardar mi archivo crontab en / tmp?

11

Ssh a un servidor, y quiero agregar algunos trabajos diarios (específicamente para renovar los tickets de Kerberos incluso cuando salgo y todavía quiero que mis programas en pantalla o tmux continúen ejecutándose) en cron. Entonces corro crontab -ey agrego lo siguiente,

00 00 * * * kinit -R
00 12 * * * kinit -R

Cuando lo guardo, el editor me pregunta:

File Name to Write: /tmp/crontab.HMpG7V 

¿No es que /tmpel sistema operativo puede eliminar los archivos ? ¿Especialmente después de cerrar sesión en el servidor?

¿Dónde debo guardar mi archivo crontab? ¿Puedo guardar el archivo crontab en $ HOME o en un espacio mejor?

Tim
fuente
¿Puedo guardar el archivo crontab en $ HOME? ¿Por qué necesito un enlace simbólico?
Tim

Respuestas:

15

crontab -eabre un archivo en / tmp en lugar del crontab real para que pueda verificar su nuevo crontab en busca de errores y evitar que sobrescriba su crontab real con esos errores. Si no hay errores, se actualizará su crontab real. Si crontab -esolo escribió directamente en su crontab real, entonces correría el riesgo de que todos sus cronjobs no se ejecuten debido a un error de sintaxis en su nuevo crontab.

sudoedit, visudo, vipw, Etc. operar en el mismo principio.

No se preocupe, su crontab real vive en una ubicación no volátil en el disco.

jayhendren
fuente
¿Dónde se almacena mi archivo crontab eventualmente? Si me desconecto del servidor, ¿qué pasará con mi archivo crontab? (No soy administrador y no tengo acceso de root al servidor)
Tim
1
su crontab real vive en algún lugar /var/spool(típicamente), pero nunca debe tocar su crontab real y tampoco debería necesitarlo, use crontab -een su lugar. Probablemente no tenga el nivel de acceso correcto para editar el archivo crontab sin procesar de todos modos.
jayhendren
si cierra sesión, no le pasará nada a su crontab. no vive en / tmp.
jayhendren
(1) ¿Es el archivo crontab para un usuario individual o para todos los usuarios? (2) ¿Cómo puedo verificar si mi edición en el archivo crontab funciona?
Tim
las crontabs son por usuario. para verificar que se ejecuta su cronjob, puede verificar los registros cron. normalmente en /var/log/cron.log, pero también podría ser en otras ubicaciones.
jayhendren
5

/tmpes donde se escribe el archivo temporal crontab. Después de guardar y salir, crontabva a confirmar los cambios en un directorio diferente, más adecuado en su sistema (por lo general en /var/spool/cron, si no recuerdo mal). Entonces, no se preocupe, el sistema operativo puede eliminar su / tmp, pero nunca eliminará sus crontabs.

Valmiky Arquissandas
fuente
1

Los archivos de Crontab residen en / var / spool / cron / crontabs / bajo el nombre de usuario o ID de usuario. Dado que pueden surgir situaciones en las que el crontab ubicado aquí ya no está conectado a su cuenta de inicio de sesión, se recomienda que guarde una copia en su directorio de inicio, por ejemplo /home/userid/.crontab, para que pueda restaurarlo fácilmente si lo necesita a. Esto también le permite colocarlo bajo control de revisión si lo desea.

Si el directorio de inicio se reubica en otro sistema, a menudo el crontab del directorio de cola no lo acompaña a menos que el administrador del sistema lo tenga en cuenta. Tampoco se realiza una copia de seguridad / restauración de / var / spool cuando un sistema necesita ser rehecho.

Por lo tanto, nuevamente se recomienda mantener una copia de su crontab en su directorio de inicio.

Use su editor favorito (pico, vi, emacs, etc.) para editar ~ / .crontab y luego use crontab para aplicarlo a / var / spool / crontabs. Me gusta esto:

% pico ~/.crontab; crontab ~/.crontab

Si te gustan los alias, puedes hacer que se ejecute uno.

JonathanS
fuente
1
¿Tengo que hacer algo para que el archivo crontab de mi casa anule los archivos crontab en otra ubicación?
Tim
Simplemente ejecute "crontab ~ / .crontab" y lo aplicará al de / var / spool / cron / crontabs. Use pico, emacs o vi para editar ~ / .crontab de antemano para realizar cualquier cambio.
JonathanS
Esto en realidad no responde la pregunta.
nadie
@AndrewMedico: La pregunta principal parecía ser "¿Dónde debo guardar mi archivo crontab? ¿Puedo guardar el archivo crontab en $ HOME o en un espacio mejor?" ¿O te refieres a la pregunta de Tim en el comentario aquí?
JonathanS