Ensure ssh isn't reading from standard input by using the -n option:
ZFSHEALTH=/usr/local/bin/ssh -n $MACHINE "/sbin/zpool get health rpool" | grep ONLINE | wc -l
ZFSSTAT=ssh -n -q $MACHINE /sbin/zpool status rpool
--
*Steve Coile*Senior Network and Systems Engineer, McClatchy Interactive <http://www.mcclatchyinteractive.com/> Office: 919-861-1247 | Mobile: 919-622-5369 | Fax: 919-861-1300
On Wed, Sep 24, 2014 at 10:00 AM, Ricardo L. <rltexas1 at gmail.com> wrote:
I have this script work is failing on all hosts except the first one.
I have narrowed it down to the ssh statement. For some reason the ssh statement causes the script to exit after the first host.
Any ideas why the ssh statement would cause the ext script to exit after the first host ?
#!/bin/sh
export PATH=$PATH:/sbin:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/local/bin
HOSTTAG=zfsmon # What we put in hosts.cfg to trigger this test
COLUMN=zfs # Name of the column, often same as tag in hosts.cfg
$XYMONHOME/bin/xymongrep $HOSTTAG | while read L
do
set $L # To get one line of output from xymongrep HOSTIP="$1" MACHINEDOTS="$2" MACHINE=`echo $2 | $SED -e's/\./,/g'` COLOR=green MSG="&green $MACHINEDOTS : POOL OK " #... do the test, perhaps modify COLOR and MSG typeset ZFSSTAT= ZFSHEALTH=`/usr/local/bin/ssh $MACHINE "/sbin/zpool get healthrpool" | grep ONLINE | wc -l`
if [ $ZFSHEALTH -ne 1 ] then COLOR=red MSG="&red $MACHINEDOTS : POOL ISSUE" fi ZFSSTAT=`ssh -q $MACHINE /sbin/zpool status rpool` $XYMON $XYMSRV "status $MACHINE.$COLUMN $COLOR `date` ${MSG} $ZFSSTAT "Done
Xymon mailing list Xymon at xymon.com http://lists.xymon.com/mailman/listinfo/xymon