He agregado una entrada crontab en un servidor Linux que ejecutará un ejecutable Java. El código de Java usa su propia clase para registrar errores y mensajes en un archivo de registro.Depuración de trabajos crontab
Pero cuando revisé el archivo de registro después de la hora programada, no se registraron mensajes. Debería haber al menos un mensaje de registro que dijera que la ejecución había comenzado.
Así que hay dos causas posibles:
- El código ejecutado pero no registraba;
- O, el código no se ejecutó en absoluto.
El archivo de registro especificado tiene chmod 777
permisos, así que supongo que es la segunda causa aquí.
¿Por qué no se ejecutaría una tarea de crontab a la hora programada? ¿Y cómo puedo depurar esto sin que ocurra ningún tipo de registro?
He leído que si hay un error, cron envía un correo electrónico al usuario. ¿Cómo averiguo qué dirección de correo electrónico está asociada con el usuario?
que aún no funciona guarda nada. El comando crontab es '25 08 * * * /root/java/MyProject/sync.sh >> /root/java/Migration/sync.log 2> & 1'. Sin embargo, si ejecuto el script de shell, entonces el código se ejecuta y la clase Java Logger escribe en el archivo de registro – naiquevin
¿Está configurando variables de entorno en el script? A menudo, si una secuencia de comandos se ejecuta desde la línea de comandos pero no desde cron, puede ser un entorno. tener synch.sh escribir su salida env al registro. – Karl
¿Qué variables necesitaré establecer? Probé el comando 'env' desde la terminal y no muestra ni JAVA_HOME ni CLASSPATH. Este es el servidor en vivo donde acabo de instalar JRE y no JDK. Gracias – naiquevin