Ahoj, poradíte? Mám script, kterej vypadá takhle
#!/bin/bash
out=$( nmap seznam.cz | grep / | sed '/Starting/d' | cut -f 1 -d '/' | sed ':a;N;$!ba;s/\n/,/g' )
printf "These ports are opened on seznam.cz $out \n"
Má scanovat porty na hostu (seznam.cz) tam je schválně a pak vypsat do výstupu, který jsou otevřený. Na Nagios 3.2.3 mi to funguje na poprvé, na Nagios 3.4.1 mi to nejde a už z toho docela šílim. Stejná konfigurace, CentOS 6.3, instalováno z repozitáře, jednou ze starýho (to je ten 3.2.3) a podruhý z EPELu.
Tady jsou obrázky - (check_test)
Nagios 3.2.3
Nagios 3.4.1
Přitom když to spustim z shellu jako root, tak to funguje, když to spustim jako uživatel nagios, tak to taky funguje. Celkově mi připadá, že jsou nějaký problémy s přenosem obsahu proměnnejch mezi nagiosem a scriptama..
Případně nemáte script, co by tohle uměl a fungoval?
Taky bych potřeboval script, co mi ukáže, jestli je port 22 zavřenej, když bude, tak OK, když nebude, tak Critical, taky jsem si to napsal sám a taky mi to nefunguje z asi stejnýho důvodu (nagios 3.4.1 na 3.2.3 to jde)
#!/bin/bash
if [ -z $2 ]; then
if [ -z $1 ]; then
printf "needs \$1 & \$2 (address & port number)\n"
exit 2
else
printf "needs \$2 (port number)\n"
exit 2
fi
fi
closed=$(nmap $1 -p $2 | grep ssh | cut -f 2 -d ' ' )
if [ "$closed" = "open" ]
then printf "CRITICAL: port $2 is open \n"
exit 2
else printf "OK: port $2 is filtered/closed \n"
exit 0
fi