К серверу(FreeBSD). Подключенны два провайдера. Есть необходимость в двух скриптах, которые перенастраивют: маршрут по умолчанию, смену сервера DNS,
рестартуют natd и почту.
Вот сваял.
Просьба покритиковать. Ещё не пробовал в работе.
#################Скрипт номер раз##############################
mail# cat prov1.sh
gate="X.Y.Z.A"route delete default
route add default $gatecp ./prov1/named.conf /etc/namedb
rnamed=`ps -aux | grep named | awk '{print$2}'`
kill -HUP $rnamedrnatd=`ps -aux | grep natd | awk '{print$2}'`
kill -HUP $rnatdcp ./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 $gatecp ./prov2/named.conf /etc/namedb
rnamed=`ps -aux | grep named | awk '{print$2}'`
kill -HUP $rnamedrnatd=`ps -aux | grep natd | awk '{print$2}'`
kill -HUP $rnatdcp ./prov2/mail/* /etc/mail
rsendmail=`ps -aux | grep sendmail | awk '{print$2}'`
kill -HUP $rsendmail/root/providing/prov2/firewall.sh
###############################################################
> К серверу(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.
>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.
>>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.
>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засада...
>>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.
>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"
Какую строчку дописать для данной ситуации?