Re: [OT] Problema raro, raro... en shell script

2013-09-12 Por tema Alfonso Camacho
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

2013-09-12 Por tema Camaleón
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

2013-09-12 Por tema Santiago López Denazis
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

2013-09-11 Por tema Camaleón
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

2013-09-10 Por tema Adrià
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

2013-09-10 Por tema Alfonso Camacho
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

2013-09-10 Por tema Camaleón
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

2013-09-10 Por tema Santiago López Denazis
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

2013-09-10 Por tema jors

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

2013-09-10 Por tema Santiago López Denazis
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

2013-09-10 Por tema Santiago López Denazis
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

2013-09-10 Por tema Alfonso Camacho
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

2013-09-10 Por tema Camaleón
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

2013-09-10 Por tema Alfonso Camacho
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

2013-09-10 Por tema Santiago López Denazis
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

2013-09-10 Por tema Alfonso
-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

2013-09-10 Por tema Alfonso
-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

2013-09-10 Por tema Ricardo

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

2013-09-10 Por tema Alfonso
-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

2013-09-10 Por tema Santiago López Denazis
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

2013-09-10 Por tema Santiago López Denazis
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