@ka-may

Какие можно использовать переменные в скрипте ip-up?

Добрый день!
У меня есть несколько VPN соединений на macOS и задача реализовать автоматическое добавление соответствующего маршрута в сеть за VPN.
Я взял за основу распространенную реализацию скрипта. Создал в папке /etc/ppp файл ip-up с правами на запуск:
#!/bin/sh
VPNWORK="192.168.44.1"; #обьявляем переменную (например по названию VPN подключения)
if [ $IPREMOTE = $VPNWORK ] #проверяем, если совпадает добавляем маршрут
then
/sbin/route -n add -net 192.168.10.0/24 $IPREMOTE > /tmp/ppp.log 2>&1
fi

Но скрипт не сработал, я подозреваю что проблема в переменной $IPREMOTE так как скрипт:
#!/bin/sh
/sbin/route add 192.168.0.0/24 -interface $1

Работает, но он не дает вариативности так как у меня могут быть разные подсети за VPN.
Вопрос в том, откуда берутся переменные из скриптов выше: $1, $IPREMOTE, ясно что они предопределены, но где прочесть их список с описанием?

macOS Big Sur
  • Вопрос задан
  • 1018 просмотров
Решения вопроса 1
hint000
@hint000
у админа три руки
У меня в Linux'е штатный /etc/ppp/ip-up начинается комментариями:
#!/bin/sh
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
#    Arg  Name                          Example
#    $1   Interface name                ppp0
#    $2   The tty                       ttyS1
#    $3   The link speed                38400
#    $4   Local IP number               12.34.56.78
#    $5   Peer  IP number               12.34.56.99
#    $6   Optional ``ipparam'' value    foo

И кстати, рекомендую не заменять штатный файл, а оставить его в покое, и положить рядом в /etc/ppp/ свой скрипт ip-up.local
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ka-may Автор вопроса
#!/bin/sh
VPNWORK="172.16.2.99"; #обьявляем переменную (например по названию VPN подключе$
if [ $4 = $VPNWORK ] #проверяем, если совпадает добавляем маршрут
then
/sbin/route -n add -net 192.168.1.0/24 $4 > /tmp/ppp.log 2>&1
fi

Все заработало с данным скриптом, как определить переменную необходимую, указано в комментариях к вопросу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы