Адаптивный Рекомбинатор
Авком?
Sergey
ip -a
Sergey
потом grep
Denis 災 nobody
ip -a
ip -a Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } ...
Denis 災 nobody
таки a s
Denis 災 nobody
Грепом?
а по человечески есть методы?
Denis 災 nobody
через питон знаю
Max
Что не так с грехом?
պլհկ
что не так с питоном?
Sergey
ip a | grep 127.0.0.1 -B2 | head -n1
Sergey
:-)
G72K
ip a | grep 127.0.0.1 -B2 | head -n1
Вот оно истинное лицо опенсоурса
Denis 災 nobody
что не так с питоном?
питону нужно ставить либы, тогда это 2 строки, да
Dmitry
есть айпи, как из баша определить от какого он интерфейса?
ip a | grep $IP -B 2 | head -n 1 | awk '{print $2}' | sed 's/://'
Dmitry
вот так даже
G72K
Текстовый выхлоп как ABI системы
G72K
Жесть же
Vladimir
ip a | grep $IP -B 2 | head -n 1 | awk '{print $2}' | sed 's/://'
ip -o a | awk '($4 ~ /^127\.0\.0\.1/){print $2}'
Dmitry
а у меня нет )
Vladimir
парсить надо
что парсить?
Dmitry
/^127\.0\.0\.1/
Sergey
ABI - это Application Binary Interface. Причём тут CLI?
Vladimir
/^127\.0\.0\.1/
можно переделать так чтоб без регулярок )
Vladislav
ip a | grep $IP -B 2 | head -n 1 | awk '{print $2}' | sed 's/://'
ip -o r get 192.168.10.7 | awk '/local/ {print $4}'
Dmitry
ip -o a | grep $ip | awk '{ print $2}'
Dmitry
вот так красиво
Vladislav
нахер греп еще тут?
G72K
ABI - это Application Binary Interface. Причём тут CLI?
При том что если вывод меняется - все ломается. Точно так же как если в ABI меняется расположение полей в структуре . В этом и жесть что CLI становится ABI
Dmitry
про ip -o забыл я
Dmitry
лох
Vladimir
ip -o a | grep $ip | awk '{ print $2}'
ip -o a | awk -vip="127.0.0.1" '(index($4, ip) == 1){print $2}'
Denis 災 nobody
ip a | grep $IP -B 2 | head -n 1 | awk '{print $2}' | sed 's/://'
[root@sw5 ~]# IP=213.170.66.155 [root@sw5 ~]# [root@sw5 ~]# ip a | grep $IP -B 2 | head -n 1 | awk '{print $2}' | sed 's/://' 213.170.66.150/28 хм
Vladislav
а, вам сложнее надо
Dmitry
короче, вариантов уже дофига %)
Vladimir
вопрос в формулировке задачи )
Denis 災 nobody
ip -o a | awk '($4 ~ /^127\.0\.0\.1/){print $2}'
[root@sw5 ~]# ip -o a | awk '($4 ~ /^213\.170\.66\.150/){print $2}' eth1 более рабочее
Vladimir
[root@sw5 ~]# ip -o a | awk '($4 ~ /^213\.170\.66\.150/){print $2}' eth1 более рабочее
там есть с -v и index чтобы можно было параметром передавать )
Vladimir
awk -vip="127.0.0.1" '(index($4, ip) == 1){print $2}' <<< $(ip -o a)
Sergei
ip -o r get ip | awk '/local/ {print $4}'
это не всегда работает
Vladimir
вот так ваще без pipe'а
Dmitry
@Dragonflybsd взял и справоцировал приступ башнянки у всех
Vladislav
это не всегда работает
ну, тащемта всегда, если адрес на интерфейсе
Vladimir
@spuzirev мне кстати очень хочется набор базовых тулзов (типа ip) но чтоб можно было сказать -o json
Vladimir
последние лет 10 хочется
Denis 災 nobody
вопрос в формулировке задачи )
собсно, задача.. нужен пост-инсталл скрипт в kickstart, который потом разбирает что там настроили с сеткой, где внутренние интерфейсы, где внешние, и заполняет айпи-интерфейс для внутр и внеш трафа, причем если внутр нет то берем lo
Denis 災 nobody
как-то так.
Dmitry
я кстати понял что мой вариант говно, если этот айпи будет, например, вторым или третьим на интерфейсе
Vladimir
меня просто очень коробит парсить текст авком
Sergei
ну, тащемта всегда, если адрес на интерфейсе
root@gw:~# ip -o r get 188.166.30.9 | awk '/local/ {print $4}' lo root@gw:~# ip a | grep -B 3 188.166.30.9 valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 04:01:7e:8f:50:01 brd ff:ff:ff:ff:ff:ff inet 188.166.30.9/18 brd 188.166.63.255 scope global eth0
Denis 災 nobody
последние лет 10 хочется
вот было бы такое зело полезно.
Vladimir
жейсон ту олд, надо в ямли!
ну я не против и в protobuf :)
Vladimir
или msgpack :)
Igor
в блокчейн //простите
Vladimir
и возможности везде выбрать колонки )
Vladimir
-c id,name,ip -o json
Dmitry
в блокчейн //простите
три майнинг фермы этому господину!!
Sergei
а давай зафигачим?
заебешься и смысла особого нет
Vladimir
coreutils с —output json
Vladimir
раз хочется - значит есть
Sergei
почему нет?
это способ сделать скриптинг на баше с jq проще. а я не хочу скрипты с jq в реальном мире.
Vladimir
это способ сделать скриптинг на баше с jq проще. а я не хочу скрипты с jq в реальном мире.
это способ потом вокруг сделать шелл умеющий объекты и при этом семантически напоминающий баш
Sergei
мде. а и точно же
более того, адрес необязательно находится на интерфейсе, с которого уходит трафик с этим src
Vladimir
при правильном дизайне потом можно сделать будет шелл с умным пайпом
Vladimir
который при передаче в пайп для built-in'ов будет получать структурированное представление
Vladislav
в этом плане все норм
Sergei
идея была не с, а к
к - работает через local-таблицу, что и демонстрирует :)
Vladislav
к - работает через local-таблицу, что и демонстрирует :)
нно, надо было show table local юзать, а не get ip -o r s e 192.168.10.7 t local | awk '/local/ {print $4}'