Pregunta ¿Es malo editar el archivo cron manualmente?


Por lo general, se le indica que introduzca nuevos trabajos cron a través de líneas de comando; pero me resultó más fácil (con un mejor control de las tareas cron actuales) editar manualmente (en el editor de texto) el archivo cron del usuario como /var/spool/cron/crontabs/root.

¿Es peligroso editar el archivo en el editor de texto?

Los comentarios en el archivo predeterminado son confusos. La primera linea dice

# DO NOT EDIT THIS FILE - edit the master and reinstall.

Pero la cuarta línea dice

# Edit this file to introduce tasks to be run by cron.

12
2018-01-06 14:46


origen


¿Por qué no poner las cosas bajo /etc/cron.d? - Zoredache
Puede ser una buena idea; pero no quise decir qué archivo editar, estoy comparando el archivo de edición por editor o ejecutando el comando crontab. - Googlebot
@Todos supongo que la única diferencia es la comprobación de sintaxis realizada por crontab-e. Es solo un buffer de texto con comprobación de sintaxis. También puedes cambiar tu editor habitual y crontab-e se cargaría en eso. La importancia en la xyntax es que se ignorará todo el archivo si comete un error. Incluso si usa una herramienta externa, debe usar crontab-e para leer el archivo y enviarlo de vuelta a crontab-e cuando termine. Si lo hace, no tendrá que preocuparse más por la sintaxis. Es mejor dividir los archivos del usuario y las tareas del sistema, por lo que debería usar mejor /etc/cron.d para las tareas del usuario / prueba. - erm3nda


Respuestas:


Si modifica el archivo de usuario en crontabs, debería funcionar. Sin embargo, hay dos cuestiones a tener en cuenta:

  1. Si escribió incorrectamente la entrada cron en el archivo, no se le advertirá en lugar de usar crontab -e mando.
  2. No puede editar su archivo de usuario directamente en crontabs sin iniciar sesión como root o usar sudo. Obtendrá permiso denegado error.

Editar

Un punto más para añadir. Cuando edite el archivo directamente, el editor de texto puede advertirle si lo abre dos veces (dos usuarios que acceden al mismo archivo). Sin embargo, la lista cron se sobrescribirá al usar crontab -e a partir de dos sesiones shell diferentes del mismo usuario. Esta es otra diferencia.


20
2018-01-06 14:54



Puntos muy sutiles! Nunca enfrenté (supe) el segundo problema, ya que siempre trabajo como root. - Googlebot
Además, el "no editar" en el archivo predeterminado se debe a que una actualización / reinstalación puede sobrescribir ese archivo. - Chris S
No mencionaste que un usuario que edita el crontab pierde directamente el santax, comprobando que crontab -eproporciona. - Adam F
@AdamF: ¡De esto se trata el punto 1! - Khaled


Si entiendo correctamente, está editando el archivo manualmente con un editor de texto porque no quiere usar crontab -e. Supongo que es porque está usando vi como editor y no estás familiarizado con él.

Cambias crontab -e (y otras cosas que necesitan un editor) para usar el editor nano más familiar ejecutando

export EDITOR=nano

antes de

crontab -e

Puede hacer que nano sea el editor predeterminado de permisos editando su archivo ~ / .bash_profile para incluir export EDITOR=nano al final.

Para responder a su pregunta, no debe editar el archivo directamente porque puede sobrescribirse sin que usted lo sepa. La cuarta línea dice lo que dice porque proviene del archivo crontab que se supone que debes editar manualmente (diría que es la primera línea).


7
2018-01-06 15:40



Gracias por la respuesta descriptiva. Estoy completamente familiarizado con crontab command vi editor; pero uso gedit (no en el terminal ssh), ya que me conecto directamente al servidor desde mi escritorio de Linux. - Googlebot
También recomiendo agregar el comando de exportación EDITOR en su archivo bashrc para evitar escribirlo cada vez que inicie sesión en ssh. - erm3nda


export VISUAL=vi

Esta es la forma correcta de cambiar el editor de crontab.


1
2018-01-30 20:07