Como chamar a variável no shell script do KSH

0
#!/bin/sh
# This script is for checking the status of SSHD2 Number of  connections

CHKOUT="Please also Check the Number of ORPHAN / DEFUNCT Process on 'hostname' :"
DFOUT='/usr/bin/ps -eaf | grep defucnt'
SHCOUNT='/usr/bin/pgrep sshd2|wc -l'
if [ $SHCOUNT -gt 150 ]

then
    mailx -s "Warning! : 'hostname' has more than $SHCOUNT  SSHD2 Connections running Please Check!" [email protected]  << EOF

'echo  $CHKOUT'
'echo "=========================================================="'
'echo  $DFOUT'

EOF
fi

======================================

Olá especialistas. Não consigo obter a saída da variável "DFOUT". Vocês podem sugerir a maneira correta de fazer isso?

===================
Edited code that is working nice..

#!/bin/sh
# This script is for checking the status of SSHD2 Number of  connections
CHKOUT="Please also Check the Number of ORPHAN / DEFUNCT Process on 'hostname' :"
PS='/usr/bin/ps -eaf | grep -v grep| grep defunct'
SHNT='/usr/bin/pgrep ssh|wc -l'

if [ $SHNT -gt 15 ]

then

        mailx -s "Warning!  'hostname' has more than $SHNT SSHD2 Connections running Please Check!"  [email protected]   << EOF
        Hi Team,

        $CHKOUT
        ===========================================================
        $PS

EOF
fi
    
por karn 04.08.2015 / 03:20

1 resposta

1

O problema pode ter a ver com o fato de que os comandos echo devem estar gravando no mailx STDIN , mas a maneira como você está fazendo isso com os backticks inline pode ser problemática. Eu tentaria colocar o corpo da mensagem em mailx :

...
then
    SEP="============================================"
    BODY="$CHKOUT\n$SEP\n$DFOUT"
    echo $BODY | mailx -s "Warning! : ..."
fi
    
por 04.08.2015 / 19:35