URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 55338
[ Назад ]

Исходное сообщение
"Скрипт переключения провайдера"

Отправлено elf , 08-Апр-05 17:17 
К серверу(FreeBSD). Подключенны два провайдера. Есть необходимость в двух скриптах, которые перенастраивют: маршрут по умолчанию, смену сервера DNS,
рестартуют natd и почту.
Вот сваял.
Просьба покритиковать. Ещё не пробовал в работе.


#################Скрипт номер раз##############################
mail# cat prov1.sh
gate="X.Y.Z.A"

route delete default
route add default $gate

cp ./prov1/named.conf /etc/namedb
rnamed=`ps -aux | grep named | awk '{print$2}'`
kill -HUP $rnamed

rnatd=`ps -aux | grep natd | awk '{print$2}'`
kill -HUP $rnatd

cp ./prov1/mail/* /etc/mail
rsendmail=`ps -aux | grep sendmail | awk '{print$2}'`
kill -HUP $rsendmail

/root/providing/prov1/firewall.sh
###############################################################


#################Скрипт номер два##############################
mail# cat prov2.sh
gate="X2.Y2.Z2.A2"

route delete default
route add default $gate

cp ./prov2/named.conf /etc/namedb
rnamed=`ps -aux | grep named | awk '{print$2}'`
kill -HUP $rnamed

rnatd=`ps -aux | grep natd | awk '{print$2}'`
kill -HUP $rnatd

cp ./prov2/mail/* /etc/mail
rsendmail=`ps -aux | grep sendmail | awk '{print$2}'`
kill -HUP $rsendmail

/root/providing/prov2/firewall.sh
###############################################################


Содержание

Сообщения в этом обсуждении
"Скрипт переключения провайдера"
Отправлено Brainbug , 08-Апр-05 17:32 
> К серверу(FreeBSD). Подключенны два провайдера. Есть необходимость в двух скриптах, которые
>перенастраивют: маршрут по умолчанию, смену сервера DNS,
>рестартуют natd и почту.
> Вот сваял.
> Просьба покритиковать. Ещё не пробовал в работе.
>
>
>#################Скрипт номер раз##############################
>mail# cat prov1.sh
>gate="X.Y.Z.A"
>
>route delete default
>route add default $gate
>
>cp ./prov1/named.conf /etc/namedb
>rnamed=`ps -aux | grep named | awk '{print$2}'`
>kill -HUP $rnamed
>
>rnatd=`ps -aux | grep natd | awk '{print$2}'`
>kill -HUP $rnatd
>
>cp ./prov1/mail/* /etc/mail
>rsendmail=`ps -aux | grep sendmail | awk '{print$2}'`
>kill -HUP $rsendmail
>
>/root/providing/prov1/firewall.sh
>###############################################################
>
>
>#################Скрипт номер два##############################
>mail# cat prov2.sh
>gate="X2.Y2.Z2.A2"
>
>route delete default
>route add default $gate
>
>cp ./prov2/named.conf /etc/namedb
>rnamed=`ps -aux | grep named | awk '{print$2}'`
>kill -HUP $rnamed
>
>rnatd=`ps -aux | grep natd | awk '{print$2}'`
>kill -HUP $rnatd
>
>cp ./prov2/mail/* /etc/mail
>rsendmail=`ps -aux | grep sendmail | awk '{print$2}'`
>kill -HUP $rsendmail
>
>/root/providing/prov2/firewall.sh
>###############################################################

Ja tak ponal 4to vse eto nado dla [polu]avtomati4estoko pereklu4enija
s ISP na drugoi ?
1. Adresa na interfeise/ah ostajutca preznije ?
2. Kak budet vesti sebja tvoi skript jesli naprimer
ps -aux | grep sendmail | awk '{print$2}' vozvratit spisok s PID dla boleje odnogo processa s imenami sendmail || named || natd i t.d.


"Скрипт переключения провайдера"
Отправлено elf , 08-Апр-05 17:38 
>Ja tak ponal 4to vse eto nado dla [polu]avtomati4estoko pereklu4enija
>s ISP na drugoi ?
Да.


>1. Adresa na interfeise/ah ostajutca preznije ?
Оба внешних интерфейса уже сконфигурированны.


>2. Kak budet vesti sebja tvoi skript jesli naprimer
>ps -aux | grep sendmail | awk '{print$2}' vozvratit spisok s PID
>dla boleje odnogo processa s imenami sendmail || named || natd
>i t.d.
Пошлёт им HUP.


"Скрипт переключения провайдера"
Отправлено Brainbug , 08-Апр-05 17:50 
>>Ja tak ponal 4to vse eto nado dla [polu]avtomati4estoko pereklu4enija
>>s ISP na drugoi ?
> Да.
>
>
>>1. Adresa na interfeise/ah ostajutca preznije ?
>Оба внешних интерфейса уже сконфигурированны.
>
>
>>2. Kak budet vesti sebja tvoi skript jesli naprimer
>>ps -aux | grep sendmail | awk '{print$2}' vozvratit spisok s PID
>>dla boleje odnogo processa s imenami sendmail || named || natd
>>i t.d.
>Пошлёт им HUP.

Na moi vzglad ne osobenno horo6eje re6enije dla perezepuska processov.
Dla kazdogo iz toboi pere4istelnnih processov jest opcija ukazanija
mesta hranenija pid faila. I ne nado gadat i ispolzovat raznije regex.

kill -HUP `cat /var/run/<name>.pid`

Vtoroje ja bi na tvojem meste dobavil proverku uda4nogo/neuda4nogo
kopirovanija a takze proverki na uda4noje vipolnenije kill komandi.
I v konce dumaju ne ploho bilo bi polu4it kakoi nibud sms/email
s rezultatom raboti.


"Скрипт переключения провайдера"
Отправлено elf , 08-Апр-05 17:57 
>kill -HUP `cat /var/run/<name>.pid`
>
>Vtoroje ja bi na tvojem meste dobavil proverku uda4nogo/neuda4nogo
>kopirovanija a takze proverki na uda4noje vipolnenije kill komandi.
>I v konce dumaju ne ploho bilo bi polu4it kakoi nibud sms/email
>
>s rezultatom raboti.


mail# cat natd.pid
99
mail# ps -aux|grep natd
root      9558  0.0  0.1   336  196  p0  R+    5:56PM   0:00.00 grep natd
root        89  0.0  0.0   448   72  ??  Is   Sat09AM   0:00.30 /sbin/natd
root        94  0.0  0.0   448   84  ??  Is   Sat09AM   0:01.61 /sbin/natd
root        99  0.0  0.1   448  136  ??  Ss   Sat09AM   0:43.18 /sbin/natd

засада...


"Скрипт переключения провайдера"
Отправлено Brainbug , 08-Апр-05 17:59 
>>kill -HUP `cat /var/run/<name>.pid`
>>
>>Vtoroje ja bi na tvojem meste dobavil proverku uda4nogo/neuda4nogo
>>kopirovanija a takze proverki na uda4noje vipolnenije kill komandi.
>>I v konce dumaju ne ploho bilo bi polu4it kakoi nibud sms/email
>>
>>s rezultatom raboti.
>
>
>mail# cat natd.pid
>99
>mail# ps -aux|grep natd
>root      9558  0.0  0.1  
> 336  196  p0  R+    
>5:56PM   0:00.00 grep natd
>root        89  0.0  
>0.0   448   72  ??  Is
>  Sat09AM   0:00.30 /sbin/natd
>root        94  0.0  
>0.0   448   84  ??  Is
>  Sat09AM   0:01.61 /sbin/natd
>root        99  0.0  
>0.1   448  136  ??  Ss  
> Sat09AM   0:43.18 /sbin/natd
>
>засада...

4to i sledovalo dokazat.


"Скрипт переключения провайдера"
Отправлено elf , 08-Апр-05 19:23 
>4to i sledovalo dokazat.
killall -HUP named
наверно пойдет?

   Попробвал в работе - не фурычит. Доходит до выполнения firewall.sh и
ругается.

Тут ещё вспомнил что в rc.conf'е прописанно
...
natd_enable="NO"
natd_program="/sbin/natd"
natd_interface="tun0"
natd_flags="-s -m -dynamic"
...
а в системе ещё один внешний "rl0"
Какую строчку дописать для данной ситуации?