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 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.
> 

-- 
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/1870987752.354.1378814150910.javamail.r...@gnuino.net

Responder a