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