Здравствуйте.
По мотивам
полезнейшего топика настроил себе параллельно (с балансировкой) пару PPPoE-соединений с двумя местными провайдерами.
Автор топика предложил два скрипта: первый для задания маршрутов и маскарадинга (NAT для раздачи интернета остальным локальным компам), второй — для проверки соединения пингами то по одному, то по другому интерфейсу и, соответствующему, (пере)заданию шлюзов (в зависимости от прохождения пингов включается шлюз первого провайдера, второго или обоих сразу с балансировкой). Второй скрипт в самом своём начале просто вызывает первый. Сами скрипты целиком можно посмотреть в
том топике.
Всё прекрасно получилось. Работают доступные каналы, интернет раздаётся в локалку.
Но идиллия продолжалась пока я ручками в консоли запускал:
# /etc/balance/check.sh
А странности начались после вполне естественного шага. Чтобы всё поднималось само после ребута, я добавил в crontab для рута:
@reboot /etc/balance/check.sh
После загрузки системы проверяю и вижу:
# ps ax | grep che<br/>
1261 ? Ss 0:00 /bin/sh -c /etc/balance/check.sh<br/>
1262 ? S 0:00 /bin/bash /etc/balance/check.sh
То есть скрипт как бы запустился.
И интернет на самой машине есть (и на ppp1, и на ppp2 — всё хорошо), но
на eth0 (в локалку) — он не раздаётся.
При этом, стоит мне сделать снова руками в консоли то, что, казалось бы, уже сделал cron:
# /etc/balance/check.sh
И я сначала вижу такое сообщение:
RTNETLINK answers: File exists
А дальше начинается уже вывод скрипта («Both channels» и пр.) и, что самое главное, на eth0 появляется интернет.
Предположил, что скрипт выполняется слишком «рано» (например, маскарадить ещё нечего в момент его выполнения), поставил такое в кронтабе:
5 23 * * * /etc/balance/check.sh
И перезапустил машину почти ровно в 23 часа. Вывод перенаправил в файл. Глянул в 23:10 — в лог скрипт писать начал вовремя, т.е. запустился скрипт своевременно, но интернет не раздаётся. После запуска руками в консоли — всё снова ок.
Подскажите, пожалуйста, в чём магия?
А в, идеале, подскажите правильный способ того, как стартовать всё это хозяйство при загрузке и автоматически перезапускать, если скрипт вдруг когда-то помрёт.
Спасибо.
P.S. Публикую этот вопрос в придачу к коменту в топике, поскольку автор топика на Хабре пару дней не появлялся (а уведомление о новом коменте верхнего уровне приходит только автору).
P.P.S. Я задал этот вопрос на Хабре, а не на каком-нибудь форуме, потому что ценный в моей ситуации мануал я тоже нашёл только на Хабре, а не на каком-нибудь форуме.