Вчера главному заказчику поставили FreeBSD и Interbase,
у него более 60 мест. Так вот нам иногда надо патчить наши базы, но делать это надо в монопольном режиме,
чтобы ни кто не подключился во время патча.
Когда там стояла NT мы делали так, шли на сервер, откидывали шнурок и патчили.
Естественно что под FreeBSD я не хочу так делать. Поэтому решил написать скрипт для того чтобы получить ip с
которого я работаю, потом либо добавляет правило фаирвола или в hosts.allow , в котором разрешает
коннект только с моей машины. Так вот вопрос, если я подсоединен через sshd, как мне получить ip с
которого я работаю, вот мой корявый вариант:
#!/bin/sh
mtty=`tty | cut -d '/' -f 3`
mip=`ps -xo pid,command | grep 'sshd' | grep $mtty | cut -d ' ' -f 4`
mip=`sockstat | grep $mip | cut -d ':22' -f 2 | cut -d ' ' -f 9`
echo $mip
есть ли более правильный вариант?
Зачем так извращатся? Свой ip то всегда известен - добавляешь правило ipfw deny from not <ip> to any и все.
>Зачем так извращатся? Свой ip то всегда известен - добавляешь правило ipfw deny from not <ip> to any и все.
Я то знаю свой ip, но люди которые будут работать с патчем вообще имеют слабое представление что такое ip, им надо только запустить скрипт который замочит существующие конекты и обеспечит невозможность под ключения к БД(ни с каких машин кроме той с которой запущен скрипт) до тех пор пока не завершится патч. Все это должно делаться автоматически.
Необходимо добавить в /etc/hosts.allow
две строки
gds_db : <myip> : allow
gds_db : ALL : deny
>>Зачем так извращатся? Свой ip то всегда известен - добавляешь правило ipfw deny from not <ip> to any и все.
>
>
>Я то знаю свой ip, но люди которые будут работать с патчем
>вообще имеют слабое представление что такое ip, им надо только запустить
>скрипт который замочит существующие конекты и обеспечит невозможность под ключения к
>БД(ни с каких машин кроме той с которой запущен скрипт) до
>тех пор пока не завершится патч. Все это должно делаться автоматически.
>
>Необходимо добавить в /etc/hosts.allow
>две строки
>gds_db : <myip> : allow
>gds_db : ALL : denyМожно в одну строку
who am i | awk '{print(substr($6,2,length($6)-2))}'
>>>Зачем так извращатся? Свой ip то всегда известен - добавляешь правило ipfw deny from not <ip> to any и все.
>>
>>
>>Я то знаю свой ip, но люди которые будут работать с патчем
>>вообще имеют слабое представление что такое ip, им надо только запустить
>>скрипт который замочит существующие конекты и обеспечит невозможность под ключения к
>>БД(ни с каких машин кроме той с которой запущен скрипт) до
>>тех пор пока не завершится патч. Все это должно делаться автоматически.
>>
>>Необходимо добавить в /etc/hosts.allow
>>две строки
>>gds_db : <myip> : allow
>>gds_db : ALL : deny
>
>Можно в одну строку
>who am i | awk '{print(substr($6,2,length($6)-2))}'Ну и типа если тебе переменной это надо присвоить
ip=`who am i | awk '{print(substr($6,2,length($6)-2))}'`
Спасибо большое за ответ Y!
Все получилось.
Но все же хотелось бы узнать такой вариан нормален, или лучше искать принципиально иные решения этой проблемы.