Quiero ejecutar un pequeño archivo jar de monitoreo cada 2 horas en mi máquina ubuntu.
java -jar mymonitoringtool.jar
No sé cómo configurarlo.
Comentarios
- cron es tu amigo, para esto.
- ¿Qué debe suceder al cambiar a / desde el horario de verano? ¿Es muy importante que el trabajo se ejecute cada dos horas y no se le permita saltar o agregar una hora en ese momento?
- Sí, debería ejecutarse cada dos horas. Supongo que sin saltos, ya que no representaría 2 horas de seguimiento en lugar de 2 horas. Estamos planeando ejecutar algunas estadísticas sobre ello. Por lo tanto, la duración es importante.
Respuesta
Puede configurar un crontab con la siguiente expresión para sus requisitos.
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
Primero debe verificar si hay trabajos cron existentes ejecutando crontab -l
.
Si no lo hace tiene trabajos cron todavía, puede poner el bove línea en un archivo de texto (digamos my-cron-job.txt) y ejecute crontab my-cron-job.txt
para activarlo. Luego, puede verificar que el trabajo se haya agregado ejecutando crontab -l
una vez más.
Si tiene trabajos cron existentes, necesitará ejecutar crontab -e
y edite el archivo crontab. Esto requerirá que trabaje con un editor de línea de comandos (vi, por defecto).
El demonio cron solo establece un número limitado de las variables de entorno, por lo que es preferible especificar la ruta completa al ejecutable de Java. También deberá especificar la ruta completa a su archivo JAR ejecutable.
Supongo que desea recopilar la salida del comando java -jar
, así que He agregado un archivo de registro al comando. Los flujos de salida y error del comando se redirigirán a este archivo de registro, que se nombrará con una marca de tiempo (monitor-2018Nov03-200000.log, por ejemplo).
Una vez que todo está configurado, debe monitorear el trabajo cron para la primera o dos ejecuciones. Si todo funciona como lo necesita, puede dejarlo en ejecución.
Como referencia externa , aquí hay una introducción a los trabajos cron. Esto debería ayudarlo a comprender cómo funciona realmente la programación.
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
Answer
cron es el programador de trabajos interno de Linux. Ayuda a programar su comando para que se ejecute en un intervalo particular o date_time.
escriba
crontab -e
en la terminalagregue esta línea
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
guardar y salir
Sintaxis de Crontab de la siguiente manera
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
minuto 0 cada 2 horas todos los días todos los meses todos los días de la semana ejecute este comando
Para obtener más opciones e información: https://help.ubuntu.com/community/CronHowto
Comentarios
- ¿Se requiere la ruta / a / java si configuré JAVA_HOME? Puedo ver que la versión de java funciona en mi máquina.
- no es necesario agregar ruta si la variable de entorno (JAVA_HOME) Está establecido. Pero de alguna manera, si la variable ambiental se estropeaba, la ruta java agregada en cronjob no ' frenó