Changes between Version 2 and Version 3 of logTiempoReal
- Timestamp:
- Mar 18, 2014, 12:42:48 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
logTiempoReal
v2 v3 1 = Cómo mostrar los mensajes de log en tiempo real = 1 [[TOC(heading=Índice)]] 2 = Cómo mostrar los mensajes de log en tiempo real. = 3 == Distribución de la pantalla de log. == 2 4 Un script tiene varios pasos, voy mandando mensajes de lo que se está realizando y en algunas tareas me interesa mostrar la salida que da el comando al que llamo. 3 5 … … 18 20 || /tmp/command.log.tmp || -- || Se obtiene aplicando el comando string a command.log || 19 21 22 == Funciones a utilizar. == 23 Las funciones ogEcho y ogRaiseError permiten escribir en los archivos log del cliente, session.log y command.log. El formato es: 24 25 {{{ 26 ogEcho [log] [session] [command] "cadena a mostrar" 27 ogRaiserError [session] [command] "cadena a mostrar" 28 }}} 29 30 Los mensajes se escribirán en la ventana de línea de comandos y en los archivos indicados por los parámetros. El comando ogRaiserError siempre va a escribir en el archivo de log del cliente. 31 32 El comando ogEcho admite varios niveles de log: info, warning y error. Si los utilizamos antes de la cadena que queramos mostrar se informará de la hora y del nivel de error. Por ejemplo: 33 34 {{{ 35 > ogEcho session info "mensaje de info" 36 OpenGnSys info: 2014-03-18 12:42:15 mensaje de info 37 }}} 38 39 == Cómo crear los mensajes informativos desde el script. == 40 En general los mensajes que informen de las tareas que se están realizando y de los errores que nos hacen salir de la aplicación se mostrará en los mensajes de log y en la parte intermedia de la pantalla. 41 42 Los mensajes que contengan comandos o valores como la ip del repositorio y los nombres de la imágenes sólo se mostrará en línea de comandos y si se quiere en el archivo de log del cliente. 43 20 44 Al comenzar un script borramos los archivos que se muestra en la pantalla. 21 45 … … 28 52 }}} 29 53 30 Los mensajes que quiero que salgan en la parte de los intermedia los mo nstraré así:54 Los mensajes que quiero que salgan en la parte de los intermedia los mostraré así: 31 55 {{{ 32 echo “Mensaje de log” | tee -a $OGLOGSESSION $OGLOGFILE 56 ogEcho log session “Mensaje de log” 33 57 }}} 58 34 59 La salida de los comandos se redireccionan así: 35 60 … … 38 63 }}} 39 64 40 Cuando quiero mostrar la salida de un error y salirme después: 65 Si quisiera comprobar si el comando ha dado error y salirme despues. 41 66 {{{ 42 ComandoAComprobar 43 [ $? == 0 ] || ogRaiseError $OG_ERR_XXX "paramentros" 2>&1 | tee -a $OGLOGSESSION $OGLOGFILE 44 exit ${PIPESTATUS[0]} 67 ogCopyFile REPO imagen.img CACHE / 2>&1 | tee -a $OGLOGCOMMAND 68 [ ${PIPESTATUS[0]} == 0 ] || exit $(ogRaiseError session $OG_ERR_XXX "parametros" || echo $?) 45 69 }}} 46 70 47 Los errores definidos en opengnsys los podemos encontrar en /opt/opengnsys/client/etc/preinit/loadenviron.sh 71 Los errores definidos en opengnsys los podemos encontrar en /opt/opengnsys/client/etc/preinit/loadenviron.sh. Si queremos ver el mensaje que corresponde a un código de error podemos usar la función ogRaiseError: 72 {{{ 73 > echo $OG_ERR_UPDATECACHE 74 31 75 > ogRaiseError 31 76 OpenGnSys error: 2014-03-18 13:25:37 : Error al realizar el comando updateCache "" 77 }}} 48 78 49 79 No conviene redireccionar hacía OGLOGCOMMAND la salida de los comandos/script que en su codigo interno envíen mensajes a OGLOGSESSION, para no duplicar los mensajes. Por ejemplo su desde el script deployImage llamo a updateCache y lo redirecciono a la salida de comandos. … … 54 84 55 85 == Código de la página de log en tiempo real. == 56 La página del cliente que se encarga de mostrar el log de tiempo real es: /usr/lib/cgi-bin/httpd-log.sh 86 La página del cliente que se encarga de mostrar el log de tiempo real es: /usr/lib/cgi-bin/httpd-log.sh. 57 87 58 88 {{{ … … 77 107 * http://$IP_cliente/cgi-bin/LogSession.sh 78 108 * http://$IP_cliente/cgi-bin/LogCommand.sh 109 110 En el repositorio los encontramos en el directorio /opt/opengnsys/client/lib/httpd. 79 111 80 112 Mostramos las líneas de estos script que nos pueden interesar: