В сценарии оболочки Ubuntu (sh) отсутствует строка

Я создаю некоторый сценарий для статического маршрута, который называется "my.rc.route", и помещаю его в /etc/rc.local, поэтому каждый раз при перезапуске сервера сценарий запускается после всего процесса запуска.

Мне немного странно обнаружить, что в моем сценарии случайно пропущена какая-то строка в системе.

Кто-нибудь имеет дело с этой ситуацией? Где отслеживать / войти, чтобы прочитать?

Я вставляю свой "my.rc.route" здесь, ответил Gnudiff.

#!/bin/bash
ip ro add table arieluna 10.254.254.248/29 dev lan  proto kernel  scope link  src 10.254.254.254
ip ro add table arieluna 10.222.23.0/24 dev vlan17  proto kernel  scope link  src 10.222.23.1
ip ro add table arieluna 10.222.22.0/24 dev vlan16  proto kernel  scope link  src 10.222.22.1
ip ro add table arieluna 10.222.21.0/24 dev vlan15  proto kernel  scope link  src 10.222.21.1
ip ro add table arieluna 10.222.20.0/24 dev vlan14  proto kernel  scope link  src 10.222.20.1
ip ro add table arieluna 10.222.19.0/24 dev vlan13  proto kernel  scope link  src 10.222.19.1
ip ro add table arieluna 10.222.18.0/24 dev vlan12  proto kernel  scope link  src 10.222.18.1
ip ro add table arieluna 10.222.17.0/24 dev vlan11  proto kernel  scope link  src 10.222.17.1
ip ro add table arieluna 10.222.16.0/24 dev vlan10  proto kernel  scope link  src 10.222.16.1
ip ro add table arieluna 10.222.24.0/24 dev vlan18  proto kernel  scope link  src 10.222.24.1

1 ответ

Решение

@Redmumba находится на правильном пути здесь. Если вы попытаетесь добавить правила iptables для интерфейсов, которые еще не настроены / не настроены, то iptables выдаст ошибку, и правила не будут добавлены. Для меня это звучит так, будто вы конфигурируете хотя бы один из ваших интерфейсов через NetworkManager или что-то подобное (зависит от вашего дистрибутива), и эта часть происходит только тогда, когда пользователь входит в систему через графический интерфейс (т.е. после выполнения rc.local).

Если вы хотите, чтобы это работало, вам нужно будет выполнить скрипт с помощью команды "up" в /etc/network/interfaces (если вы работаете в дистрибутиве на основе Debian) или с помощью подобных механизмов.

В качестве альтернативы вы можете настроить свои интерфейсы для настройки во время загрузки. В дистрибутивах на основе Debian это делается заменой ключевого слова allow-hotplug в разделах интерфейса на "auto". Другие дистрибутивы будут использовать другие механизмы для этого, вам нужно будет прочитать соответствующие справочные страницы, чтобы узнать, что делать.

Другие вопросы по тегам