Если вы хотите добавить в свои скрипты возможность работы с графическим интерфейсом для вывода вопросов, предупреждений и прочего, то для среды GNOME есть замечательная утилитка Zenity, а вместе с ней и NotifySend. Николай из УЦ "Сетевая академия Ланит" выложил в своем блоге достаточно подробную информацию: http://aonick.livejournal.com/?skip=10 Для среды KDE подобную функциональность придает утилита kdialog. Вот пример скрипта с ее использованием: #!/bin/bash #Setting enviroument #Enabling X display export DISPLAY=":0" #Pings PINGS=1 #routers and servers conf #format string ---> name-without-space:ip RS="/home/oem/bin/rs.conf" #critical services list #format string ---> name-without-space:ip:port SL="/home/oem/bin/sl.conf" #send list (netbios names admins comps) NM=`cat /home/oem/bin/nm.conf | grep -v '^#.*' `
#read router and servers list IPS=`cat $RS | grep -v '^#.*'`
for REC in $IPS do IP=`echo $REC | /usr/bin/awk -F":" '{print $2}'` /usr/bin/nmap -sP $IP | /bin/grep down > /dev/null if [ $? -eq 0 ]; then /usr/bin/kdialog --error `date '+%H:%M:%S'`' Нет связи с '`echo $REC | /usr/bin/awk -F":" '{print $1}'` --title 'Потеря связи!' --display $DISPLAY & for ADMIN in $NM do echo `date '+%H:%M:%S'`' Link down with '`echo $REC | /usr/bin/awk -F":" '{print $1}'` | smbclient -M `echo $ADMIN | /usr/bin/awk -F':' '{print $1}'` -I `echo $ADMIN | /usr/bin/awk -F':' '{print $2}'` > /dev/null done fi done
#read services list SERV=`cat $SL | grep -v '^#.*'`
for RECS in $SERV do S_IP=`echo $RECS | /usr/bin/awk -F":" '{print $2}'` S_PORT=`echo $RECS | /usr/bin/awk -F":" '{print $3}'` /usr/bin/nmap -sT $S_IP -p $S_PORT | /bin/grep closed > /dev/null if [ $? -eq 0 ]; then /usr/bin/kdialog --error `date '+%H:%M:%S'`' Недоступна служба '`echo $RECS | /usr/bin/awk -F":" '{print $1}'` --title 'ВНИМАНИЕ!' --display $DISPLAY & for ADMIN in $NM do echo `date '+%H:%M:%S'`' Unaviable service '`echo $RECS | /usr/bin/awk -F":" '{print $1}'` | smbclient -M `echo $ADMIN | /usr/bin/awk -F':' '{print $1}'` -I `echo $ADMIN | /usr/bin/awk -F':' '{print $2}'` > /dev/null done fi done
exit
Комментарии
@
21.4.08, 10:02,
Линуксоид
Сразу добавлю, что для корректной работы скрипта ему необходимы файлы: nm.conf (список станций админов под windows) ------- admin1:192.168.1.1 admin2:192.168.1.2 -------