Re: [OT] Problema raro, raro... en shell script
Saludos: Alfonso, concuerdo con Santiago: no se está ejecutando el primer for _del segundo bucle_, es decir, este: *** for MULTIHOSTSNETAPP in $HOSTSNETAPP ; *** Imprime en pantalla el valor de $HOSTSNETAPP para saber cómo se inicializa en el bucle (o asígnale artificialmente el valor que debería tener): *** echo $HOSTSNETAPP; for MULTIHOSTSNETAPP in $HOSTSNETAPP; do echo segundo loop; for MULTIVOLNETAPP in $VOLCONF; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL - -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt; echo OK. Ha rulado; done done Ese valor se define en el if anteior, y es un fichero que contiene el nombre de varios columenes separados por espacio: if [[ -s $CONFBASE/hosts-netapp_$DATE.conf ]] ; then echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado else $HOSTBIN HOSTSNETAPP=`cat $CONFBASE/hosts-netapp_$DATE.conf` fi # Creacion de reports temporales por volumen echo primer loop; for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo segundo loop ; for MULTIVOLNETAPP in $VOLCONF ; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt ; echo OK. Ha rulado done done Yo creo que el for que no se ejecuta es for MULTIVOLNETAPP in $VOLCONF, ya que una vez colocados los echo's no me devuelve salida por pantalla (el primero si): + echo 'OK. Fichero de configuracion '\''hosts-netapp_20130912.conf'\'' encontrado' OK. Fichero de configuracion 'hosts-netapp_20130912.conf' encontrado + echo 'primer loop' primer loop + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt *** Saludos, -- Camaleón -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/pan.2013.09.11.14.32...@gmail.com -- Alfonso alfo...@gnuino.net -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/2032933295.507.1378998866058.javamail.r...@gnuino.net
Re: [OT] Problema raro, raro... en shell script
El Thu, 12 Sep 2013 17:14:26 +0200, Alfonso Camacho escribió: Alfonso, concuerdo con Santiago: no se está ejecutando el primer for _del segundo bucle_, es decir, este: *** for MULTIHOSTSNETAPP in $HOSTSNETAPP ; *** (...) Ese valor se define en el if anteior, y es un fichero que contiene el nombre de varios columenes separados por espacio: if [[ -s $CONFBASE/hosts-netapp_$DATE.conf ]] ; then echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado else $HOSTBIN HOSTSNETAPP=`cat $CONFBASE/hosts-netapp_$DATE.conf` fi Pero hum... oye, está dentro de un else. ¿Seguro que llega al segundo bucle con el valor esperado? # Creacion de reports temporales por volumen echo primer loop; for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo segundo loop ; for MULTIVOLNETAPP in $VOLCONF ; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt ; echo OK. Ha rulado done done Yo creo que el for que no se ejecuta es for MULTIVOLNETAPP in $VOLCONF, ya que una vez colocados los echo's no me devuelve salida por pantalla (el primero si): + echo 'OK. Fichero de configuracion '\''hosts-netapp_20130912.conf'\'' encontrado' OK. Fichero de configuracion 'hosts-netapp_20130912.conf' encontrado + echo 'primer loop' primer loop + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt Si el segundo for se ejecutara debería sacarte segundo loop y no lo hace. Saludos, -- Camaleón -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/pan.2013.09.12.15.23...@gmail.com
Re: [OT] Problema raro, raro... en shell script
On 09/12/2013 12:14 PM, Alfonso Camacho wrote: Saludos: Ese valor se define en el if anteior, y es un fichero que contiene el nombre de varios columenes separados por espacio: if [[ -s $CONFBASE/hosts-netapp_$DATE.conf ]] ; then echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado else $HOSTBIN HOSTSNETAPP=`cat $CONFBASE/hosts-netapp_$DATE.conf` fi # Creacion de reports temporales por volumen echo primer loop; for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo segundo loop ; for MULTIVOLNETAPP in $VOLCONF ; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt ; echo OK. Ha rulado done done Yo creo que el for que no se ejecuta es for MULTIVOLNETAPP in $VOLCONF, ya que una vez colocados los echo's no me devuelve salida por pantalla (el primero si): No estás haciendo el seguimiento correctamente, ya que tu `echo primer loop`, se ejecuta antes del for, es una instrucción anterior. En el output que pasas se ve el OK. Fichero de configuracion 'hosts-netapp_20130912.conf' encontrado, de forma que no se ejecuta el else y, salvo que le hayas asignado valor anteriormente, $HOSNETAPP está vacía. Creo que tienes un error de lógica y lo que en realidad necesitas hacer es: [ -s $CONFBASE/hosts-netapp_$DATE.conf ] { $HOSTBIN; HOSTSNETAPP=`cat $CONFBASE/hosts-netapp_$DATE.conf`; } O algo análogo en lugar de ese if-else que tienes. Pero ya es cosa tuya. Saludos, + echo 'OK. Fichero de configuracion '\''hosts-netapp_20130912.conf'\'' encontrado' OK. Fichero de configuracion 'hosts-netapp_20130912.conf' encontrado + echo 'primer loop' primer loop + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt *** Saludos, -- Camaleón -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/pan.2013.09.11.14.32...@gmail.com -- Santiago López Denazis GNU/Linux SysAdmin sldena...@gmail.com Open your source, open your mind. Por favor, no utilice formatos de archivo privativos para el intercambio de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto. Vea http://www.gnu.org/philosophy/no-word-attachments.es.html -- signature.asc Description: OpenPGP digital signature
Re: [OT] Problema raro, raro... en shell script
El Wed, 11 Sep 2013 02:12:45 +0200, Alfonso escribió: ¿Y si lo ejecutas manualmente asignado valores a las variables? Si funciona definiendo a mano los valores que deberían tener esas variables del bucle entonces ejecuta un echo antes de la ejecución del bucle para ver con qué valor llegan. Aix... había puesto mal el echo. Ahora poniendo el echo antes de cada for veo que solo se ejecuta el primero (en la misma rutina hay dos for): # Creacion de reports temporales por volumen echo primer loop ; for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo segundo loop ; for MULTIVOLNETAPP in $VOLCONF ; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL - -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt ; echo OK. Ha rulado done done Esta es la salida: + echo 'primer loop' primer loop + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt sed: no se puede leer /usr/local/bin/reports/capacitat/tmp/netapp.txt: No existe el fichero o el directorio O sea, que el segunso for no se está ejecutando ahora, ya que como he comentado con anterioridad esa misma rutina se ejecutaba si se ponía en primer lugar o en un script independiente. Alfonso, concuerdo con Santiago: no se está ejecutando el primer for _del segundo bucle_, es decir, este: *** for MULTIHOSTSNETAPP in $HOSTSNETAPP ; *** Imprime en pantalla el valor de $HOSTSNETAPP para saber cómo se inicializa en el bucle (o asígnale artificialmente el valor que debería tener): *** echo $HOSTSNETAPP; for MULTIHOSTSNETAPP in $HOSTSNETAPP; do echo segundo loop; for MULTIVOLNETAPP in $VOLCONF; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL - -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt; echo OK. Ha rulado; done done *** Saludos, -- Camaleón -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/pan.2013.09.11.14.32...@gmail.com
Re: [OT] Problema raro, raro... en shell script
On Tue, Sep 10, 2013 at 12:15:53PM +0200, Alfonso Camacho wrote: Saludos: Estoy currando en un script alojado en un servidor Debian Squeeze cuya misión es capturar información de uso de disco y volumenes de servidores Windows y cabinas NetApp mediante SNMP (se usan checks de Nagios para lanzar estas consultas). El problemas es que como la red de la cual obtener estos datos es bastante grande se tiene que lanzar de manera recursiva para todos los hosts, unidades y volumenes que hay definidos en varios ficheros de configuración, para lo cual se ha creado una rutina for para cada check: # - DECLARACION DE VARIABLES - PATHBASE=/usr/local/bin/reports/capacitat TMPBASE=$PATHBASE/tmp INCBASE=$PATHBASE/incoming CONFBASE=$PATHBASE/etc VOLCONF=`cat $CONFBASE/volumes.conf` EXCLUDECONF=$CONFBASE/exclude.conf STORAGEWINBIN=$PATHBASE/bin/check_snmp_storage.pl STORAGENETAPPBIN=$PATHBASE/bin/check_netapp_du.pl HOSTBIN=$PATHBASE/bin/dynhosts/run.sh SNMP=LT1 WARN_LEVEL=80 CRIT_LEVEL=95 ## ## Extraccion y generacion de reports servidores Windows # ## # Comprobacion de la existencia de fichero de configuracion 'hosts.conf'. if [[ -s $CONFBASE/hosts-win_$DATE.conf ]] ; then echo OK. Fichero de configuracion 'hosts-win_$DATE.conf' encontrado else $HOSTBIN HOSTSWIN=`cat $CONFBASE/hosts-win_$DATE.conf` fi # Creacion de reports temporales por volumen for MULTIHOSTSWIN in $HOSTSWIN do $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[C]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:C: $TMPBASE/c.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[D]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:D: $TMPBASE/d.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[E]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:E: $TMPBASE/e.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[F]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:F: $TMPBASE/f.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[G]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:G: $TMPBASE/g.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[H]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:H: $TMPBASE/h.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[I]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:I: $TMPBASE/i.txt done ## ## Extraccion y generacion de reports cabinas NetApp # ## # Comprobacion de la existencia de fichero de configuracion 'hosts.conf'. if [[ -s $CONFBASE/hosts-netapp_$DATE.conf ]] ; then echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado else $HOSTBIN HOSTSNETAPP=`cat $CONFBASE/hosts-netapp_$DATE.conf` fi # Creacion de reports temporales por volumen for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do for MULTIVOLNETAPP in $VOLCONF do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt done done Lo raro del caso es que solo se ejecuta el primer for que encuentra en el script, pasando de ejecutar el que encuentra en segundo lugar. Incluso se partido el script en scripts independientes haciendo las llamadas desde el script principal y el comportamiento es el mismo. Alguna idea o sugerencia? Alguien ve lo que estoy haciendo mal? Muchas gracias. El segundo for no lleva el punto y coma. Ahora no puedo mirarlo con más detalle, pero bash tiene peculiaridades de este estilo. Mira tambien de ejecutarlo con sh -x o bien poniendo echos a modo de depuración para saber el recorrido de la rutina. -- Adrià García-Alzórriz ad...@fsfe.org GPG Key: 09494C14 Cada situación es el mejor axioma para progresar en el camino. -- Kalfried Durkhei. signature.asc Description: Digital signature
Re: [OT] Problema raro, raro... en shell script
Saludos: Ya lo ejecuto con sh -x script.sh, y el fallo es que no crea el fichero que deberia crear ese for: + [[ -s /usr/local/bin/reports/capacitat/etc/hosts-netapp_20130910.conf ]] + echo 'OK. Fichero de configuracion '\''hosts-netapp_20130910.conf'\'' encontrado' OK. Fichero de configuracion 'hosts-netapp_20130910.conf' encontrado + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt sed: no se puede leer /usr/local/bin/reports/capacitat/tmp/netapp.txt: No existe el fichero o el directorio - Mensaje original - De: Adrià ad...@fsfe.org Para: debian-user-spanish@lists.debian.org Enviados: Martes, 10 de Septiembre 2013 12:35:39 Asunto: Re: [OT] Problema raro, raro... en shell script On Tue, Sep 10, 2013 at 12:15:53PM +0200, Alfonso Camacho wrote: Saludos: Estoy currando en un script alojado en un servidor Debian Squeeze cuya misión es capturar información de uso de disco y volumenes de servidores Windows y cabinas NetApp mediante SNMP (se usan checks de Nagios para lanzar estas consultas). El problemas es que como la red de la cual obtener estos datos es bastante grande se tiene que lanzar de manera recursiva para todos los hosts, unidades y volumenes que hay definidos en varios ficheros de configuración, para lo cual se ha creado una rutina for para cada check: # - DECLARACION DE VARIABLES - PATHBASE=/usr/local/bin/reports/capacitat TMPBASE=$PATHBASE/tmp INCBASE=$PATHBASE/incoming CONFBASE=$PATHBASE/etc VOLCONF=`cat $CONFBASE/volumes.conf` EXCLUDECONF=$CONFBASE/exclude.conf STORAGEWINBIN=$PATHBASE/bin/check_snmp_storage.pl STORAGENETAPPBIN=$PATHBASE/bin/check_netapp_du.pl HOSTBIN=$PATHBASE/bin/dynhosts/run.sh SNMP=LT1 WARN_LEVEL=80 CRIT_LEVEL=95 ## ## Extraccion y generacion de reports servidores Windows # ## # Comprobacion de la existencia de fichero de configuracion 'hosts.conf'. if [[ -s $CONFBASE/hosts-win_$DATE.conf ]] ; then echo OK. Fichero de configuracion 'hosts-win_$DATE.conf' encontrado else $HOSTBIN HOSTSWIN=`cat $CONFBASE/hosts-win_$DATE.conf` fi # Creacion de reports temporales por volumen for MULTIHOSTSWIN in $HOSTSWIN do $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[C]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:C: $TMPBASE/c.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[D]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:D: $TMPBASE/d.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[E]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:E: $TMPBASE/e.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[F]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:F: $TMPBASE/f.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[G]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:G: $TMPBASE/g.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[H]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:H: $TMPBASE/h.txt $STORAGEWINBIN -H $MULTIHOSTSWIN -C $SNMP -w $WARN_LEVEL -c $CRIT_LEVEL -m ^[I]: | cut -f4 -d ':' | xargs echo $MULTIHOSTSWIN:I: $TMPBASE/i.txt done ## ## Extraccion y generacion de reports cabinas NetApp # ## # Comprobacion de la existencia de fichero de configuracion 'hosts.conf'. if [[ -s $CONFBASE/hosts-netapp_$DATE.conf ]] ; then echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado else $HOSTBIN HOSTSNETAPP=`cat $CONFBASE/hosts-netapp_$DATE.conf` fi # Creacion de reports temporales por volumen for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do for MULTIVOLNETAPP in $VOLCONF do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt done done Lo raro del caso es que solo se ejecuta el primer for que encuentra en el script, pasando de ejecutar el que encuentra en segundo lugar. Incluso se partido el script en scripts independientes haciendo las llamadas desde el script principal y el comportamiento es el mismo. Alguna idea o sugerencia? Alguien ve lo que estoy haciendo mal? Muchas gracias. El segundo for no lleva el punto y coma. Ahora no puedo mirarlo con más detalle, pero bash tiene peculiaridades de este estilo. Mira tambien de ejecutarlo con sh -x o bien poniendo echos
Re: [OT] Problema raro, raro... en shell script
El Tue, 10 Sep 2013 13:55:50 +0200, Alfonso Camacho escribió: (corrijo el top-posting) - Mensaje original - De: Adrià ad...@fsfe.org Para: debian-user-spanish@lists.debian.org Enviados: Martes, 10 de Septiembre 2013 12:35:39 Asunto: Re: [OT] Problema raro, raro... en shell script (...) # Creacion de reports temporales por volumen for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do for MULTIVOLNETAPP in $VOLCONF do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt done done (...) El segundo for no lleva el punto y coma. Ahora no puedo mirarlo con más detalle, pero bash tiene peculiaridades de este estilo. Mira tambien de ejecutarlo con sh -x o bien poniendo echos a modo de depuración para saber el recorrido de la rutina. Ya lo ejecuto con sh -x script.sh, y el fallo es que no crea el fichero que deberia crear ese for: + [[ -s /usr/local/bin/reports/capacitat/etc/hosts-netapp_20130910.conf ]] + echo 'OK. Fichero de configuracion '\''hosts-netapp_20130910.conf'\'' encontrado' OK. Fichero de configuracion 'hosts-netapp_20130910.conf' encontrado + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt sed: no se puede leer /usr/local/bin/reports/capacitat/tmp/netapp.txt: No existe el fichero o el directorio Revisando el script que has enviado no veo ninguna llamada a sed, que es donde entiendo que se para al no existir el archivo ¿pero de dónde viene ese sed -e? :-? Saludos, -- Camaleón -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/pan.2013.09.10.15.15...@gmail.com
Re: [OT] Problema raro, raro... en shell script
On 09/10/2013 01:16 PM, Ricardo wrote: El 10/09/13 13:04, Santiago López Denazis escribió: On 09/10/2013 01:00 PM, Alfonso Camacho wrote: Saludos: Entonces el problema lo tienes en el if anterior, que es el que decide si $HOSTNETAPP tendrá contenido o no. si está vacío, naturalmente el for no tendrá en qué iterar. for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done Tiene lógica lo que comentas, lo que me extraña es que si ese mismo bloque de script (el if, el for y los sed's siguientes) lo ejecuto en primer lugar o los coloco en un script a parte funciona correctamente. Es fácil, si ves el 'echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado', entonces el for no funcionará. Para que te funcione correctamente el script (sobre todo si lo vas a incluir en el cron) debes incluir el path absoluto de todos los comandos y archivos/directorios que utilices. No he mirado con atencion si el script contiene errores de sintaxis o logica, pero salta a la vista que el comando echo, lo has puesto sin su path apropiado, esto es solo un ejemplo. `echo` es un builtin de bash, no necesitas indicar la ruta. -- Santiago López Denazis GNU/Linux SysAdmin sldena...@gmail.com Open your source, open your mind. Por favor, no utilice formatos de archivo privativos para el intercambio de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto. Vea http://www.gnu.org/philosophy/no-word-attachments.es.html -- signature.asc Description: OpenPGP digital signature
Re: [OT] Problema raro, raro... en shell script
On 10/09/13 18:17, Santiago López Denazis wrote: On 09/10/2013 01:16 PM, Ricardo wrote: El 10/09/13 13:04, Santiago López Denazis escribió: On 09/10/2013 01:00 PM, Alfonso Camacho wrote: Saludos: Entonces el problema lo tienes en el if anterior, que es el que decide si $HOSTNETAPP tendrá contenido o no. si está vacío, naturalmente el for no tendrá en qué iterar. for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done Tiene lógica lo que comentas, lo que me extraña es que si ese mismo bloque de script (el if, el for y los sed's siguientes) lo ejecuto en primer lugar o los coloco en un script a parte funciona correctamente. Es fácil, si ves el 'echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado', entonces el for no funcionará. Para que te funcione correctamente el script (sobre todo si lo vas a incluir en el cron) debes incluir el path absoluto de todos los comandos y archivos/directorios que utilices. No he mirado con atencion si el script contiene errores de sintaxis o logica, pero salta a la vista que el comando echo, lo has puesto sin su path apropiado, esto es solo un ejemplo. `echo` es un builtin de bash, no necesitas indicar la ruta. Pero hay otros (cat, cut, xargs...) que no. En ese caso no estoy seguro de si seria preciso hacer lo que comenta Ricardo caso de ejecutarlo desde cron. Salut, jors -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/522f6a98.7020...@enchufado.com
Re: [OT] Problema raro, raro... en shell script
On 09/10/2013 03:53 PM, jors wrote: On 10/09/13 18:17, Santiago López Denazis wrote: On 09/10/2013 01:16 PM, Ricardo wrote: Para que te funcione correctamente el script (sobre todo si lo vas a incluir en el cron) debes incluir el path absoluto de todos los comandos y archivos/directorios que utilices. No he mirado con atencion si el script contiene errores de sintaxis o logica, pero salta a la vista que el comando echo, lo has puesto sin su path apropiado, esto es solo un ejemplo. `echo` es un builtin de bash, no necesitas indicar la ruta. Pero hay otros (cat, cut, xargs...) que no. En ese caso no estoy seguro de si seria preciso hacer lo que comenta Ricardo caso de ejecutarlo desde cron. Salut, jors De todas formas, no creo que sea el problema en este caso, apunto más a un error de lógica. Me parece además que lo está ejecutando manualmente. Para las cosas croneadas hay algunas opciones: indicar la ruta completa de los comandos (aunque muchas veces estas pueden variar de un sistema a otro), exportar PATH en el script o exportar PATH en el cron. -- Santiago López Denazis GNU/Linux SysAdmin sldena...@gmail.com Open your source, open your mind. Por favor, no utilice formatos de archivo privativos para el intercambio de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto. Vea http://www.gnu.org/philosophy/no-word-attachments.es.html -- signature.asc Description: OpenPGP digital signature
Re: [OT] Problema raro, raro... en shell script
On 09/10/2013 12:37 PM, Alfonso Camacho wrote: Saludos: (corrijo el top-posting) Glup Despuieste mio ;) Revisando el script que has enviado no veo ninguna llamada a sed, que es donde entiendo que se para al no existir el archivo ¿pero de dónde viene ese sed -e? :-? Después de la ejecución de cada for se genera un fichero que debe ser formateado para poder ser cargado en una herramienta de reporting (Crystal Report). Como el error esta en el for que no se ejecuta correctamente, luego no puede ejecutar las tareas posterior de formateo sobre ese fichero. Estas son las lineas posteriores al for problemático: # Substituimos guiones (-) y barras (/) por dos puntos (:) para usarlo como separador (...) Siguiendo las indicaciones, he colocado algunos echo's al for, y ninguno de ellos aparece por pantalla asi que por algun motivo este for no llega ni a ajecutarse por algun motivo que se me escapa: Entonces el problema lo tienes en el if anterior, que es el que decide si $HOSTNETAPP tendrá contenido o no. si está vacío, naturalmente el for no tendrá en qué iterar. for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done -- Santiago López Denazis GNU/Linux SysAdmin sldena...@gmail.com Open your source, open your mind. Por favor, no utilice formatos de archivo privativos para el intercambio de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto. Vea http://www.gnu.org/philosophy/no-word-attachments.es.html -- signature.asc Description: OpenPGP digital signature
Re: [OT] Problema raro, raro... en shell script
Saludos: (corrijo el top-posting) Glup Despuieste mio ;) Revisando el script que has enviado no veo ninguna llamada a sed, que es donde entiendo que se para al no existir el archivo ¿pero de dónde viene ese sed -e? :-? Después de la ejecución de cada for se genera un fichero que debe ser formateado para poder ser cargado en una herramienta de reporting (Crystal Report). Como el error esta en el for que no se ejecuta correctamente, luego no puede ejecutar las tareas posterior de formateo sobre ese fichero. Estas son las lineas posteriores al for problemático: # Substituimos guiones (-) y barras (/) por dos puntos (:) para usarlo como separador sed -e 's/-/: /g' $TMPBASE/netapp.txt $TMPBASE/netapp-create-sep1.txt sed -e 's/[/]/: /g' $TMPBASE/netapp-create-sep1.txt $TMPBASE/netapp-create-sep2.txt # Eliminamos unidades de medida (GB) y lo convertimos en otro separador sed -e 's/GB/: /g' $TMPBASE/netapp-create-sep2.txt $TMPBASE/netapp-nounits.txt # Eliminamos elementos innecesarios de las filas sed -e 's/usage//g' $TMPBASE/netapp-nounits.txt $TMPBASE/netapp-notrash.txt # Eliminamos columnas no necesarias cut -f1,3,4,5 -d ':' $TMPBASE/netapp-notrash.txt $TMPBASE/netapp-del-columns.txt # Subtituimos los dos puntos (:) por punto y coma (;) para ser explotado por Crystal Reports sed -e 's/ :/;/g' $TMPBASE/netapp-del-columns.txt $TMPBASE/netapp-report-def.txt Siguiendo las indicaciones, he colocado algunos echo's al for, y ninguno de ellos aparece por pantalla asi que por algun motivo este for no llega ni a ajecutarse por algun motivo que se me escapa: for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done -- Alfonso alfo...@gnuino.net -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1549500128.622.1378827435741.javamail.r...@gnuino.net
Re: [OT] Problema raro, raro... en shell script
El Tue, 10 Sep 2013 17:37:15 +0200, Alfonso Camacho escribió: Revisando el script que has enviado no veo ninguna llamada a sed, que es donde entiendo que se para al no existir el archivo ¿pero de dónde viene ese sed -e? :-? Después de la ejecución de cada for se genera un fichero que debe ser formateado para poder ser cargado en una herramienta de reporting (Crystal Report). Ah, okay, supongo que lo llamaras por otro lado o que el script no estaba completo. Como el error esta en el for que no se ejecuta correctamente, luego no puede ejecutar las tareas posterior de formateo sobre ese fichero. Correcto. Estas son las lineas posteriores al for problemático: (...) Siguiendo las indicaciones, he colocado algunos echo's al for, y ninguno de ellos aparece por pantalla asi que por algun motivo este for no llega ni a ajecutarse por algun motivo que se me escapa: for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done ¿Y si lo ejecutas manualmente asignado valores a las variables? Si funciona definiendo a mano los valores que deberían tener esas variables del bucle entonces ejecuta un echo antes de la ejecución del bucle para ver con qué valor llegan. Saludos, -- Camaleón -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/pan.2013.09.10.15.59...@gmail.com
Re: [OT] Problema raro, raro... en shell script
Saludos: Entonces el problema lo tienes en el if anterior, que es el que decide si $HOSTNETAPP tendrá contenido o no. si está vacío, naturalmente el for no tendrá en qué iterar. for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done Tiene lógica lo que comentas, lo que me extraña es que si ese mismo bloque de script (el if, el for y los sed's siguientes) lo ejecuto en primer lugar o los coloco en un script a parte funciona correctamente. -- Alfonso alfo...@gnuino.net -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/918728105.642.1378828830386.javamail.r...@gnuino.net
Re: [OT] Problema raro, raro... en shell script
On 09/10/2013 01:00 PM, Alfonso Camacho wrote: Saludos: Entonces el problema lo tienes en el if anterior, que es el que decide si $HOSTNETAPP tendrá contenido o no. si está vacío, naturalmente el for no tendrá en qué iterar. for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done Tiene lógica lo que comentas, lo que me extraña es que si ese mismo bloque de script (el if, el for y los sed's siguientes) lo ejecuto en primer lugar o los coloco en un script a parte funciona correctamente. Es fácil, si ves el 'echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado', entonces el for no funcionará. -- Santiago López Denazis GNU/Linux SysAdmin sldena...@gmail.com Open your source, open your mind. Por favor, no utilice formatos de archivo privativos para el intercambio de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto. Vea http://www.gnu.org/philosophy/no-word-attachments.es.html -- signature.asc Description: OpenPGP digital signature
Re: [OT] Problema raro, raro... en shell script
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Saludos: for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done ¿Y si lo ejecutas manualmente asignado valores a las variables? Si funciona definiendo a mano los valores que deberían tener esas variables del bucle entonces ejecuta un echo antes de la ejecución del bucle para ver con qué valor llegan. Aix... había puesto mal el echo. Ahora poniendo el echo antes de cada for veo que solo se ejecuta el primero (en la misma rutina hay dos for): # Creacion de reports temporales por volumen echo primer loop ; for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo segundo loop ; for MULTIVOLNETAPP in $VOLCONF ; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL - -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt ; echo OK. Ha rulado done done Esta es la salida: + echo 'primer loop' primer loop + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt sed: no se puede leer /usr/local/bin/reports/capacitat/tmp/netapp.txt: No existe el fichero o el directorio O sea, que el segunso for no se está ejecutando ahora, ya que como he comentado con anterioridad esa misma rutina se ejecutaba si se ponía en primer lugar o en un script independiente. - -- Alfonso alfo...@gnuino.net -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlIvtXkACgkQZgftj70QgglitwCfVC6IuLaBvUuarBVolUm2a0O0 ICUAnAh/eA0dQZ+aueyYQGmpATQ0jmlR =1vZv -END PGP SIGNATURE- -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/522fb57d.3070...@gnuino.net
Re: [OT] Problema raro, raro... en shell script
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Saludos: El 10/09/13 18:04, Santiago López Denazis escribió: On 09/10/2013 01:00 PM, Alfonso Camacho wrote: Saludos: Entonces el problema lo tienes en el if anterior, que es el que decide si $HOSTNETAPP tendrá contenido o no. si está vacío, naturalmente el for no tendrá en qué iterar. for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done Tiene lógica lo que comentas, lo que me extraña es que si ese mismo bloque de script (el if, el for y los sed's siguientes) lo ejecuto en primer lugar o los coloco en un script a parte funciona correctamente. Es fácil, si ves el 'echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado', entonces el for no funcionará. No creo que sea eso, ya que el if y el for se ejecutan de manera secuencial y no uno dentro de otro (el for esta fuera del if/fi) por lo que no afecta a la condición de si existe o no existe el fichero que busca. - -- Alfonso alfo...@gnuino.net -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlIvtqQACgkQZgftj70QgglocwCeIsAHHYYqJK2bnO5WWr8nzSl1 MC4AnRZh9mqF7dFIy6B4lJ1O4Y5CbxSR =hzFW -END PGP SIGNATURE- -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/522fb6a4.4060...@gnuino.net
Re: [OT] Problema raro, raro... en shell script
El 10/09/13 13:04, Santiago López Denazis escribió: On 09/10/2013 01:00 PM, Alfonso Camacho wrote: Saludos: Entonces el problema lo tienes en el if anterior, que es el que decide si $HOSTNETAPP tendrá contenido o no. si está vacío, naturalmente el for no tendrá en qué iterar. for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done Tiene lógica lo que comentas, lo que me extraña es que si ese mismo bloque de script (el if, el for y los sed's siguientes) lo ejecuto en primer lugar o los coloco en un script a parte funciona correctamente. Es fácil, si ves el 'echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado', entonces el for no funcionará. Para que te funcione correctamente el script (sobre todo si lo vas a incluir en el cron) debes incluir el path absoluto de todos los comandos y archivos/directorios que utilices. No he mirado con atencion si el script contiene errores de sintaxis o logica, pero salta a la vista que el comando echo, lo has puesto sin su path apropiado, esto es solo un ejemplo. -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/522f45e0.7060...@gmail.com
Re: [OT] Problema raro, raro... en shell script
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Saludos: for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done ¿Y si lo ejecutas manualmente asignado valores a las variables? Si funciona definiendo a mano los valores que deberían tener esas variables del bucle entonces ejecuta un echo antes de la ejecución del bucle para ver con qué valor llegan. Aix... había puesto mal el echo. Ahora poniendo el echo antes de cada for veo que solo se ejecuta el primero (en la misma rutina hay dos for): # Creacion de reports temporales por volumen echo primer loop ; for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo segundo loop ; for MULTIVOLNETAPP in $VOLCONF ; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL - -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt ; echo OK. Ha rulado done done Esta es la salida: + echo 'primer loop' primer loop + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt sed: no se puede leer /usr/local/bin/reports/capacitat/tmp/netapp.txt: No existe el fichero o el directorio O sea, que el segunso for no se está ejecutando ahora, ya que como he comentado con anterioridad esa misma rutina se ejecutaba si se ponía en primer lugar o en un script independiente. - -- Alfonso alfo...@gnuino.net -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlIvw3wACgkQZgftj70Qggnx3wCfYlSELVLEax7YEhLS1ejS1ekz hHMAn3ALTuApquXiQ7D5EOHP5JcJA2Sh =ajdu -END PGP SIGNATURE- -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/522fc37c.3050...@gnuino.net
Re: [OT] Problema raro, raro... en shell script
On 09/10/2013 09:17 PM, Alfonso wrote: Saludos: El 10/09/13 18:04, Santiago López Denazis escribió: Es fácil, si ves el 'echo OK. Fichero de configuracion 'hosts-netapp_$DATE.conf' encontrado', entonces el for no funcionará. No creo que sea eso, ya que el if y el for se ejecutan de manera secuencial y no uno dentro de otro (el for esta fuera del if/fi) por lo que no afecta a la condición de si existe o no existe el fichero que busca. Justamente por eso, salvo que, si no nos estás mostrando el código completo, asignes previamente un valor $HOSTSNETAPP, ya que justamente es sobre su contenido, cuando bash la expande, que itera el for. Pero no es lo que se ve. -- Santiago López Denazis GNU/Linux SysAdmin sldena...@gmail.com Open your source, open your mind. Por favor, no utilice formatos de archivo privativos para el intercambio de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto. Vea http://www.gnu.org/philosophy/no-word-attachments.es.html -- signature.asc Description: OpenPGP digital signature
Re: [OT] Problema raro, raro... en shell script
On 09/10/2013 10:12 PM, Alfonso wrote: Saludos: for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo primer loop for MULTIVOLNETAPP in $VOLCONF ; do echo segundo loop $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt | echo OK. Ha rulado done done ¿Y si lo ejecutas manualmente asignado valores a las variables? Si funciona definiendo a mano los valores que deberían tener esas variables del bucle entonces ejecuta un echo antes de la ejecución del bucle para ver con qué valor llegan. Aix... había puesto mal el echo. Ahora poniendo el echo antes de cada for veo que solo se ejecuta el primero (en la misma rutina hay dos for): Entonces, sigues sin entrar al for. # Creacion de reports temporales por volumen echo primer loop ; for MULTIHOSTSNETAPP in $HOSTSNETAPP ; do echo segundo loop ; for MULTIVOLNETAPP in $VOLCONF ; do $STORAGENETAPPBIN -H $MULTIHOSTSNETAPP -w $WARN_LEVEL -c $CRIT_LEVEL -v $MULTIVOLNETAPP | xargs echo $MULTIHOSTSNETAPP : $TMPBASE/netapp.txt ; echo OK. Ha rulado done done Esta es la salida: + echo 'primer loop' primer loop + sed -e 's/-/: /g' /usr/local/bin/reports/capacitat/tmp/netapp.txt sed: no se puede leer /usr/local/bin/reports/capacitat/tmp/netapp.txt: No existe el fichero o el directorio O sea, que el segunso for no se está ejecutando ahora, ya que como he comentado con anterioridad esa misma rutina se ejecutaba si se ponía en primer lugar o en un script independiente. -- Santiago López Denazis GNU/Linux SysAdmin sldena...@gmail.com Open your source, open your mind. Por favor, no utilice formatos de archivo privativos para el intercambio de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto. Vea http://www.gnu.org/philosophy/no-word-attachments.es.html -- signature.asc Description: OpenPGP digital signature