The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите с проверкой открытого порта"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Помогите с проверкой открытого порта"  +/
Сообщение от dro salevan on 29-Ноя-10, 18:02 
Требуется раз в 5 минут проверять открыт ли порт

делаю так
if [ -z $(netstat -nl|grep -os 8081) ]

then
действие
else
echo ok;
fi

Система ubuntu server

когда действительно порт открыт и виден по нетстату то вылезает оишибка
"ожидается использование бинарного..."

хотя все работает.
может что-то не так я делаю?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите с проверкой открытого порта"  +/
Сообщение от jd (??) on 29-Ноя-10, 23:53 
> может что-то не так я делаю?

Определённо. Например, пишете, что вылезает ошибка, а что за ошибка - целиком не приводите, а приводите какой-то её кусок. Кто её выдаёт - тоже не пишете, хотя вам bash говорит, что это он. Тем более, что сообщение по-русски, то есть все, у кого локаль настроена на английские сообщения, должны догадываться, от чего это мог бы быть кусок.

Также, зачем писать такой ужас, когда можно вместо первой строчки сделать так:

if netstat -nl | grep -q 8081

Конечно, блоки кода внутри if и else нужно будет поменять местами или добавить "!" после if.
Если планируется потом использовать скрипт на другой платформе, лучше вместо опции grep -q использовать "> /dev/null", так как не все grep'ы одинаково кошерны, но скорее всего для вас это не актуально.

Ещё рекомендую добавить опцию netstat --inet.

Что касается самой ошибки, то вероятно она из-за того, что результатом $(...) является строка с пробелом и проверка превращается во что-то вроде

if [ -z 8081 8081 ]

то есть является некорректной с точки зрения синтаксиса bash. Если уж делать так, то нужно взять $(...) в кавычки.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Помогите с проверкой открытого порта"  +/
Сообщение от dro salevan on 30-Ноя-10, 09:29 
Благодарю за развернутый ответ и помощь.
Хорошего Вам дня!
Спасибо!

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Помогите с проверкой открытого порта"  +/
Сообщение от cryo (ok) on 01-Дек-10, 14:18 
Для вящей совместимости можно и редиректы выкинуть.

if [ `netstat -nl | grep -c \.8081` -gt 0 ]; then
echo yes;
else
echo no;
fi

\.8081 - точка чтоб скрипт не реагировал на набор 8081 в, например, адресах UNIX-сокетов в выводе netstat.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Помогите с проверкой открытого порта"  +/
Сообщение от pavlinux (ok) on 01-Дек-10, 23:46 
>[оверквотинг удален]
> then
>  действие
> else
>  echo ok;
> fi
> Система ubuntu server
> когда действительно порт открыт и виден по нетстату то вылезает оишибка
> "ожидается использование бинарного..."
> хотя все работает.
> может что-то не так я делаю?

function deistvie() {

    echo "ACHTUNG ACHTUNG ACHTUNG" |  wall;
}

while true
     do
        echo | nc 208.68.163.220 5222
        [ $? == 0 ] && deistvie || echo SLEEP;
        sleep ( 300 )
done;


          

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру