Tengo una tarea diaria de crontab:
50 1 * * * sh /my_path/daily_task.sh > /tmp/zen_log 2>&1
Este script de shell daily_task ejecutará algunos scripts de python y producirá un archivo de datos.
Y falla por dos noches. Pero cuando llegué por la mañana, ejecuté los scripts de Python manualmente, obtuve el archivo de datos. O establezco un nuevo crontab que solo establece la fecha 0 10 * * *, y este crontab también tiene éxito.
Así que ayer, puse > /tmp/zen_log 2>&1en la tarea cron para obtener un mensaje de error.
Y esta mañana, recibí este mensaje de error en zen_log:
/my_path/daily_task.sh: line 19: 12364 Killed /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1
Parece que algún proceso ha sido asesinado? Pero, ¿qué significa esto exactamente line 19: 12364 Killed?
PD:
Hoy, hace un minuto, cuando ejecuté manualmente el script de Python, obtuve:
/usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1
Killed

line 19en el guión? Tal vez publicar su guión nos ayudará a proporcionarle una respuesta.line 19es/usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1daily_task.sh? Es difícil entender por qué falla1:50 ampero tiene éxito10 amcon la información hasta ahora./var/log/messagesMe pregunto si su script está creando un error de falta de memoria (OOM) y está siendo asesinado. ¿Su sistema tiende a ejecutar otros scripts / aplicaciones / trabajos hambrientos de recursos del sistema durante las horas nocturnas en comparación con las horas de la mañana?Respuestas:
Muchas veces, cuando se están ejecutando aplicaciones
killed, siempre es una buena idea echar un vistazo rápido a su/var/log/messagesarchivo para ver si el núcleo está matando el proceso. El desencadenante más común (en mi experiencia) siempre se ha debido a errores de falta de memoria (OOM), ya que mi empresa utiliza principalmente aplicaciones java, es bastante común que los desarrolladores publiquen una actualización de código incorrecto que desencadena un evento OOM .Programar tareas cuando su sistema operativo tiene la mayoría de los recursos disponibles es probablemente la razón por la que está teniendo éxito en los intervalos de tiempo de AM y no en el PM, cuando a la mayoría de las personas les gusta programar trabajos del sistema de impuestos. Las soluciones simples a esto son aumentar los recursos de su sistema, restringir los recursos asignados a su código o moverse cuando sus trabajos están programados para que no entren en conflicto.
fuente
messagessyslog en lugar de/var/log/messages