Changes between Version 2 and Version 3 of logTiempoReal


Ignore:
Timestamp:
Mar 18, 2014, 1:42:48 PM (8 years ago)
Author:
irina
Comment:

Adaptación al nuevo formato de las funciones ogEcho y ogRaiserError.

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. ==
    24Un 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.
    35
     
    1820|| /tmp/command.log.tmp                  || --           || Se obtiene aplicando el comando string a command.log   ||
    1921
     22== Funciones a utilizar. ==
     23Las funciones ogEcho y ogRaiseError permiten escribir en los archivos log del cliente, session.log y command.log.  El formato es:
     24
     25{{{
     26ogEcho [log] [session] [command] "cadena a mostrar"
     27ogRaiserError  [session] [command] "cadena a mostrar"
     28}}}
     29
     30Los 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
     32El 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"
     36OpenGnSys info: 2014-03-18 12:42:15 mensaje de info
     37}}}
     38
     39== Cómo crear los mensajes informativos desde el script. ==
     40En 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
     42Los 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
    2044Al comenzar un script borramos los archivos que se muestra en la pantalla.
    2145
     
    2852}}}
    2953
    30 Los mensajes que quiero que salgan en la parte de los intermedia los monstraré así:
     54Los mensajes que quiero que salgan en la parte de los intermedia los mostraré así:
    3155{{{
    32 echo “Mensaje de log” | tee -a $OGLOGSESSION $OGLOGFILE
     56ogEcho log session “Mensaje de log”
    3357}}}
     58
    3459La salida de los comandos se redireccionan así:
    3560
     
    3863}}}
    3964
    40 Cuando quiero mostrar la salida de un error y salirme después:
     65Si quisiera comprobar si el comando ha dado error y salirme despues.
    4166{{{
    42 ComandoAComprobar
    43 [ $? == 0 ] || ogRaiseError $OG_ERR_XXX "paramentros" 2>&1 | tee -a $OGLOGSESSION $OGLOGFILE
    44 exit ${PIPESTATUS[0]}
     67ogCopyFile REPO imagen.img CACHE /  2>&1 | tee -a $OGLOGCOMMAND
     68[ ${PIPESTATUS[0]} == 0 ] || exit $(ogRaiseError session $OG_ERR_XXX "parametros" || echo $?)
    4569}}}
    4670
    47 Los errores definidos en opengnsys los podemos encontrar en /opt/opengnsys/client/etc/preinit/loadenviron.sh
     71Los 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
     7431
     75> ogRaiseError 31
     76OpenGnSys error: 2014-03-18 13:25:37 : Error al realizar el comando updateCache ""
     77}}}
    4878
    4979No 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.
     
    5484
    5585== 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
     86La página del cliente que se encarga de mostrar el log de tiempo real es: /usr/lib/cgi-bin/httpd-log.sh.
    5787
    5888{{{
     
    77107 * http://$IP_cliente/cgi-bin/LogSession.sh
    78108 * http://$IP_cliente/cgi-bin/LogCommand.sh
     109
     110En el repositorio los encontramos en el directorio /opt/opengnsys/client/lib/httpd.
    79111
    80112Mostramos las líneas de estos script que nos pueden interesar: