LINUX.ORG.RU
ФорумAdmin

Скрипт ручного переключения провайдера


0

0

К серверу(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
###############################################################

anonymous

Re: Скрипт ручного переключения провайдера

1. ОК 2. нафига убивать намед? и вообще, зачем в нем чего-то менять? 3. а почему natd, нельзя было на iptables сделать НАТ? 4. и сендмейл не стоит трогать

victorb ★★ ()

Re: Скрипт ручного переключения провайдера

Монстроидальные команды типа "ps -aux | grep named | awk '{print$2}'" можно заменить на более простые:
rnamed=`pidof named`
kill -HUP $rnamed
или еще более просто:
killall -HUP named

> а почему natd, нельзя было на iptables сделать НАТ?
Потому что в BSD нет iptables :-)

Интересно, а чем отличаются конфиги named-а и sendmail-а при работе с разными провайдерами ? Bind-ом на разные интерфейсы ? А нельзя тогда их bind-ить сразу на оба и firewall-ом включать доступ к нужному ? Тогда их не придется перезапускать.

spirit ★★★★★ ()

Re: Скрипт ручного переключения провайдера

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

Тут ещё вспомнил что в rc.conf'е прописанно
...
natd_interface="tun0"
...
а в системе ещё один внешний "rl0"
Какую строчку дописать для данной ситуации?

anonymous ()

Re: Скрипт ручного переключения провайдера

Всем откликнувшимся - респект.

>Интересно, а чем отличаются конфиги named-а и sendmail-а при работе с
>разными провайдерами ? Bind-ом на разные интерфейсы ? А нельзя тогда их
>bind-ить сразу на оба и firewall-ом включать доступ к нужному ? Тогда >их не придется перезапускать.

Я... кгхм в юнихах совсем чайник. Поэтому не бейте сильно ногами за следующее.

Файлы ./prov2/named.conf и ./prov2/named.conf отличаются единственной строкой.

первый
...
forward {
X1,Y1,Z1,A1;
};
...

второй
...
forward {
X2,Y2,Z2,A2;
};
...

Сендмайл же, в случае с первым провайдером использует мастер-хост провайдера. Второй нет - шлёт напрямую.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.