вывод информации в xml формате

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

вывод информации в xml формате

Сообщение BigBrother »

Подскажите решение, которое позволяет решить данную задачу: как я могу получить вывод команд (ifconfig -a или df -h или ls -l или ....) в xml формате.
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: вывод информации в xml формате

Сообщение arkhnchul »

писать свои обвязки имхо.
Losing is fun!
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: вывод информации в xml формате

Сообщение BigBrother »

а как насчет готовых решений? Например, дописываю опцию к команде, и весь вывод в xml формате? Не думаю что такое до сих пор не реализовано...
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: вывод информации в xml формате

Сообщение serzh-z »

BigBrother писал(а):
22.10.2010 18:53
и весь вывод в xml формате?
Лол. Какой вывод? Включите мозг и подумайте, на что должен быть похож xml-вывод ifconfig и вывод, скажем, ls? Может на нижеследующее?
QUOTE писал(а):<root><command>ifconfig</command><output>eth0 Link encap:Ethernet HWaddr 00:23:54:a1:9c:f6
inet addr:192.168.1.219 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18154683 errors:0 dropped:0 overruns:0 frame:0
TX packets:15933316 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3168839667 (2.9 GiB) TX bytes:34840789828 (32.4 GiB)
Interrupt:18</output></root>
Или на это:
QUOTE писал(а):<root><command>ls /etc/conf.d</command><output>alsasound consolefont dmesg gpm ip6tables local net pciparm rsyncd staticroute twistd xinetd
</output></root>
Кому такой вывод может понадобиться?
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: вывод информации в xml формате

Сообщение arkhnchul »

Лол. Какой вывод? Включите мозг и подумайте, на что должен быть похож xml-вывод ifconfig и вывод, скажем, ls? Может на нижеследующее?

скорее байда в стиле

Код: Выделить всё

<interface name=eth0>
    <enc>Ether</enc>
    <MAC>блабла</MAC>
    <addressess>
        <ipv4>
             <ip>192.168,77,234</ip>
             <mask>255.255.255.0</mask>
             <bcast>192.168.77.255</bcast>
        </ipv4>
                <ipv6>
...........
                </ipv6>
......
</interface>

в любом случае для такого надо писать свои костылища.

из известных мне хмл-вывод только nmap умеет.
Losing is fun!
Спасибо сказали:
patrius
Сообщения: 337
ОС: Debian (4 & 5) -> Gentoo

Re: вывод информации в xml формате

Сообщение patrius »

BigBrother писал(а):
22.10.2010 18:32
Подскажите решение, которое позволяет решить данную задачу: как я могу получить вывод команд (ifconfig -a или df -h или ls -l или ....) в xml формате.


Исходя из своего и изложенного здесь мнений заключаю, что рание никому не доводилось сталкиваться с САБЖем в силу их необходимостей. Поэтому, BigBrother, опишите нам исходную задачу, для чего вам это нужно?
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: вывод информации в xml формате

Сообщение IMB »

Вы зря смеётесь, такое уже существует, по крайне мере для ifconfig.
Почитайте http://www.onvif.org/imwp/download.asp?ContentID=18006
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: вывод информации в xml формате

Сообщение BigBrother »

patrius писал(а):
23.10.2010 08:30
BigBrother писал(а):
22.10.2010 18:32
Подскажите решение, которое позволяет решить данную задачу: как я могу получить вывод команд (ifconfig -a или df -h или ls -l или ....) в xml формате.

опишите нам исходную задачу, для чего вам это нужно?

Cбор сведений о серверах Linux в формате XML для упрощения их администрирования и контроля их работы. Получить (где возможно) выходные данные утилит Linux (напр. df -h, who, mount ...) в XML формате для хранения в XML базе. Или с помощью какой-либо готовой утилиты преобразовать выходные txt-данные утилит в формат XML.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: вывод информации в xml формате

Сообщение KiWi »

BigBrother писал(а):
23.10.2010 16:12
patrius писал(а):
23.10.2010 08:30
BigBrother писал(а):
22.10.2010 18:32
Подскажите решение, которое позволяет решить данную задачу: как я могу получить вывод команд (ifconfig -a или df -h или ls -l или ....) в xml формате.

опишите нам исходную задачу, для чего вам это нужно?

Cбор сведений о серверах Linux в формате XML для упрощения их администрирования и контроля их работы. Получить (где возможно) выходные данные утилит Linux (напр. df -h, who, mount ...) в XML формате для хранения в XML базе. Или с помощью какой-либо готовой утилиты преобразовать выходные txt-данные утилит в формат XML.

Сбор сведений можно сделать через SNMP.
А ещё можно воспользоваться nagios, zabbix и т.п.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: вывод информации в xml формате

Сообщение BIgAndy »

BigBrother писал(а):
23.10.2010 16:12
Cбор сведений о серверах Linux в формате XML для упрощения их администрирования и контроля их работы. Получить (где возможно) выходные данные утилит Linux (напр. df -h, who, mount ...) в XML формате для хранения в XML базе. Или с помощью какой-либо готовой утилиты преобразовать выходные txt-данные утилит в формат XML.


Ахха. Изобретаем вИлосипед... Nagios - не?
Спасибо сказали:
Аватара пользователя
strah
Сообщения: 283
ОС: Freebsd, linux, Solaris.

Re: вывод информации в xml формате

Сообщение strah »

BIgAndy писал(а):
23.10.2010 18:50
Ахха. Изобретаем вИлосипед... Nagios - не?

Или cacti.
/earth: file system full
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: вывод информации в xml формате

Сообщение BigBrother »

повторю еще раз:
данные о состоянии сервера, необходимо собирать в xml формате!! Другие решения этой задачи (cacti, nagios etc...) мне известны, по этому не стоит говорить не по теме. Интересует именно XML :)

IMB писал(а):
23.10.2010 12:20
Вы зря смеётесь, такое уже существует, по крайне мере для ifconfig.
Почитайте http://www.onvif.org/imwp/download.asp?ContentID=18006

ткните, пожлст, носом, а то, я что-то не нашел :( поиск в документе по слову ifconfig результат не дал.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: вывод информации в xml формате

Сообщение IMB »

BigBrother писал(а):
29.10.2010 23:11
IMB писал(а):
23.10.2010 12:20
Вы зря смеётесь, такое уже существует, по крайне мере для ifconfig.
Почитайте http://www.onvif.org/imwp/download.asp?ContentID=18006

ткните, пожлст, носом, а то, я что-то не нашел :( поиск в документе по слову ifconfig результат не дал.

Плохо читали, хотя в этом есть и "вина" авторов. Посмотрите пукт 8.2.9 Get network interface configuration, стр. 72.
Но я не рекомендую Вам использовать это решение, оно несколько специализировано и сыровато. Стандарт находится в стадии активной разработки и лучше дождаться выхода версии 2.0.
Да и что бы его использовать Вам надо будет написать несколько программ, это всего лишь стандарт и готовых решений с его использованием единицы, а открытых, насколько мне известно, вообще нет.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: вывод информации в xml формате

Сообщение IMB »

BigBrother, прикрепляю свои наброски, но повторюсь ещё раз - для работоспособности необходим реализованый onvif-демон.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: вывод информации в xml формате

Сообщение BigBrother »

IMB
Спасибо за ваш труд, но одного ifconfig мало. Будем ждать и/или делать свое решение.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: вывод информации в xml формате

Сообщение IMB »

Если Вы внимательно прочитали стандарт, то должны были обратить внимание на то, что он покрывает достаточно большую часть конфигурирования системы.
Но так как он создавался с опредёленной целью и для определённого класса устройств, он может не подходить Вам или не покрывать все Ваши потребности.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: вывод информации в xml формате

Сообщение drBatty »

BigBrother
скажите пожалуйста, зачем это надо, и почему связки ifconfig|sed недостаточно?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: вывод информации в xml формате

Сообщение BigBrother »

drBatty писал(а):
01.11.2010 12:51
BigBrother
скажите пожалуйста, зачем это надо

повторю еще раз:
Cбор сведений о серверах Linux в формате XML для упрощения их администрирования и контроля их работы. Получить (где возможно) выходные данные утилит Linux (напр. df -h, who, mount ...) в XML формате для хранения в XML базе

Интересует именно XML! :)
drBatty писал(а):
01.11.2010 12:51
BigBrother
и почему связки ifconfig|sed недостаточно?

sed умеет выводить ("отдавать") инфу в xml формате?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: вывод информации в xml формате

Сообщение drBatty »

BigBrother писал(а):
01.11.2010 18:19
sed умеет выводить ("отдавать") инфу в xml формате?

она умеет выводить (отдавать) инфу в ЛЮБОМ формате. Читайте мою подпись что-ли...
хоть XML, хоть HTML, хоть C#.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: вывод информации в xml формате

Сообщение serzh-z »

BigBrother писал(а):
01.11.2010 18:19
sed умеет выводить ("отдавать") инфу в xml формате?
Нет.

Готового и дешевого решения задачи нет. И его не может быть в принципе. Ну, по-крайней мере, до тех пор, пока не появится всеобщая мода/необходимость в выводе XML и у авторов различных утилит не появится желание писать сложный модуль XML-вывода.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: вывод информации в xml формате

Сообщение drBatty »

serzh-z писал(а):
02.11.2010 00:02
Нет.

да. Что мешает написать такой конвертер? Лично мне - только одно - я не понимаю, зачем это нужно.
serzh-z писал(а):
02.11.2010 00:02
Готового и дешевого решения задачи нет. И его не может быть в принципе. Ну, по-крайней мере, до тех пор, пока не появится всеобщая мода/необходимость в выводе XML и у авторов различных утилит не появится желание писать сложный модуль XML-вывода.

С этим согласен. И всё-же объясните, ЗАЧЕМ?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: вывод информации в xml формате

Сообщение serzh-z »

drBatty писал(а):
02.11.2010 12:40
С этим согласен. И всё-же объясните, ЗАЧЕМ?
По-моему человек вполне понятно объяснил "зачем". Другое дело, что оно ему понадобилось не на той планете и не в ту эпоху.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: вывод информации в xml формате

Сообщение diesel »

drBatty писал(а):
02.11.2010 12:40
serzh-z писал(а):
02.11.2010 00:02
Нет.

да. Что мешает написать такой конвертер? Лично мне - только одно - я не понимаю, зачем это нужно.

ну sed все же будет формировать "какой-то текст из какого-то текста". То есть не "ip адрес данного компьютера покласть в заданное место в xml", а просто ... "выбрать то место в выводе ifconfig где вроде бы должен быть ip адрес, и подставить это место где вроде бы должен быть ip адрес в какой-то текст, который похож на xml" .
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: вывод информации в xml формате

Сообщение drBatty »

serzh-z писал(а):
02.11.2010 13:51
По-моему человек вполне понятно объяснил "зачем". Другое дело, что оно ему понадобилось не на той планете и не в ту эпоху.

BigBrother писал(а):
23.10.2010 16:12
Cбор сведений о серверах Linux в формате XML для упрощения их администрирования и контроля их работы. Получить (где возможно) выходные данные утилит Linux (напр. df -h, who, mount ...) в XML формате для хранения в XML базе. Или с помощью какой-либо готовой утилиты преобразовать выходные txt-данные утилит в формат XML.

ИМХО вполне можно написать набор конверторов. работа несложная, только время займёт. Если делать нечего - почему-бы и нет?

diesel писал(а):
02.11.2010 14:59
То есть не "ip адрес данного компьютера покласть в заданное место в xml", а просто ... "выбрать то место в выводе ifconfig где вроде бы должен быть ip адрес, и подставить это место где вроде бы должен быть ip адрес в какой-то текст, который похож на xml" .

можно использовать шаблоны, что-бы точно знать КУДА вставлять IP. Вопрос ОТКУДА не стоит, ибо в выводе ifconfig IP всегда в одном месте.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: вывод информации в xml формате

Сообщение sash-kan »

набросал приблизительный конвертер: git://github.com/sash-kan/ip2xml.git
на примере.
вот вывод ip a:

Код: Выделить всё

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:1d:60:7f:3f:49 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::21d:60ff:fe7f:3f49/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:04:79:67:b4:93 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.1/24 brd 10.10.10.255 scope global eth1
    inet 192.168.1.11/24 scope global eth1
    inet 192.168.0.2/30 scope global eth1
    inet6 fe80::204:79ff:fe67:b493/64 scope link
       valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
    link/ether 00:1d:60:7f:3f:49 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.72/24 brd 192.168.0.255 scope global br0
    inet6 2001:470:1f0b:e1:21d:60ff:fe7f:3f49/64 scope global dynamic
       valid_lft 2446866sec preferred_lft 459666sec
    inet6 fe80::21d:60ff:fe7f:3f49/64 scope link
       valid_lft forever preferred_lft forever
5: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
7: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether 00:ff:61:75:25:54 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2ff:61ff:fe75:2554/64 scope link
       valid_lft forever preferred_lft forever
9: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether 00:ff:2c:2b:ad:1d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2ff:2cff:fe2b:ad1d/64 scope link
       valid_lft forever preferred_lft forever
11: tap2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether 00:ff:5b:a5:6c:41 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2ff:5bff:fea5:6c41/64 scope link
       valid_lft forever preferred_lft forever
13: tap3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether 00:ff:ee:dc:b7:5b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2ff:eeff:fedc:b75b/64 scope link
       valid_lft forever preferred_lft forever
15: tap4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether 00:ff:78:29:9c:b9 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2ff:78ff:fe29:9cb9/64 scope link
       valid_lft forever preferred_lft forever

в «одностроке»:

Код: Выделить всё

$ ip -o a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN \    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
1: lo    inet 127.0.0.1/8 scope host lo
1: lo    inet6 ::1/128 scope host \       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\    link/ether 00:1d:60:7f:3f:49 brd ff:ff:ff:ff:ff:f
f
2: eth0    inet6 fe80::21d:60ff:fe7f:3f49/64 scope link \       valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000\    link/ether 00:04:79:67:b4:93 brd ff:ff:ff:ff:ff:ff
3: eth1    inet 10.10.10.1/24 brd 10.10.10.255 scope global eth1
3: eth1    inet 192.168.1.11/24 scope global eth1
3: eth1    inet 192.168.0.2/30 scope global eth1
3: eth1    inet6 fe80::204:79ff:fe67:b493/64 scope link \       valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN \    link/ether 00:1d:60:7f:3f:49 brd ff:ff:ff:ff:ff:ff
4: br0    inet 192.168.0.72/24 brd 192.168.0.255 scope global br0
4: br0    inet6 2001:470:1f0b:e1:21d:60ff:fe7f:3f49/64 scope global dynamic \       valid_lft 2446713sec preferred_lft 459513sec
4: br0    inet6 fe80::21d:60ff:fe7f:3f49/64 scope link \       valid_lft forever preferred_lft forever
5: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000\    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
7: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500\    link/ether 00:ff:61:75:25:54 brd ff:ff:ff:ff:ff:ff
7: tap0    inet6 fe80::2ff:61ff:fe75:2554/64 scope link \       valid_lft forever preferred_lft forever
9: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500\    link/ether 00:ff:2c:2b:ad:1d brd ff:ff:ff:ff:ff:ff
9: tap1    inet6 fe80::2ff:2cff:fe2b:ad1d/64 scope link \       valid_lft forever preferred_lft forever
11: tap2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500\    link/ether 00:ff:5b:a5:6c:41 brd ff:ff:ff:ff:ff:ff
11: tap2    inet6 fe80::2ff:5bff:fea5:6c41/64 scope link \       valid_lft forever preferred_lft forever
13: tap3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500\    link/ether 00:ff:ee:dc:b7:5b brd ff:ff:ff:ff:ff:ff
13: tap3    inet6 fe80::2ff:eeff:fedc:b75b/64 scope link \       valid_lft forever preferred_lft forever
15: tap4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500\    link/ether 00:ff:78:29:9c:b9 brd ff:ff:ff:ff:ff:ff
15: tap4    inet6 fe80::2ff:78ff:fe29:9cb9/64 scope link \       valid_lft forever preferred_lft forever

эти «одностроки» парсятся sed-ом:

Код: Выделить всё

$ ip -o a | ./ipa2xml.sed
/interfaces/interface/
/interfaces/interface/flags=LOOPBACK,UP,LOWER_UP
/interfaces/interface/mtu=16436
/interfaces/interface/qdisc=noqueue
/interfaces/interface/state=UNKNOWN
/interfaces/interface/link-loopback=00:00:00:00:00:00
/interfaces/interface/brd=00:00:00:00:00:00
/interfaces/interface/name=lo
/interfaces/interface/index=1
/interfaces/interface/address/
/interfaces/interface/address/inet=127.0.0.1/8
/interfaces/interface/address/scope=host
/interfaces/interface/address/
/interfaces/interface/address/inet6=::1/128
/interfaces/interface/address/scope=host
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST,UP,LOWER_UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=pfifo_fast
/interfaces/interface/state=UNKNOWN
/interfaces/interface/qlen=1000
/interfaces/interface/link-ether=00:1d:60:7f:3f:49
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=eth0
/interfaces/interface/index=2
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::21d:60ff:fe7f:3f49/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=NO-CARRIER,BROADCAST,MULTICAST,UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=pfifo_fast
/interfaces/interface/state=DOWN
/interfaces/interface/qlen=1000
/interfaces/interface/link-ether=00:04:79:67:b4:93
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=eth1
/interfaces/interface/index=3
/interfaces/interface/address/
/interfaces/interface/address/inet=10.10.10.1/24
/interfaces/interface/address/brd=10.10.10.255
/interfaces/interface/address/scope=global
/interfaces/interface/address/
/interfaces/interface/address/inet=192.168.1.11/24
/interfaces/interface/address/scope=global
/interfaces/interface/address/
/interfaces/interface/address/inet=192.168.0.2/30
/interfaces/interface/address/scope=global
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::204:79ff:fe67:b493/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST,UP,LOWER_UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=noqueue
/interfaces/interface/state=UNKNOWN
/interfaces/interface/link-ether=00:1d:60:7f:3f:49
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=br0
/interfaces/interface/index=4
/interfaces/interface/address/
/interfaces/interface/address/inet=192.168.0.72/24
/interfaces/interface/address/brd=192.168.0.255
/interfaces/interface/address/scope=global
/interfaces/interface/address/
/interfaces/interface/address/inet6=2001:470:1f0b:e1:21d:60ff:fe7f:3f49/64
/interfaces/interface/address/scope=global-dynamic
/interfaces/interface/address/valid_lft=2446538sec
/interfaces/interface/address/preferred_lft=459338sec
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::21d:60ff:fe7f:3f49/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=noop
/interfaces/interface/state=DOWN
/interfaces/interface/qlen=1000
/interfaces/interface/link-ether=0a:00:27:00:00:00
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=vboxnet0
/interfaces/interface/index=5
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST,UP,LOWER_UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=pfifo_fast
/interfaces/interface/state=UNKNOWN
/interfaces/interface/qlen=500
/interfaces/interface/link-ether=00:ff:61:75:25:54
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=tap0
/interfaces/interface/index=7
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::2ff:61ff:fe75:2554/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST,UP,LOWER_UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=pfifo_fast
/interfaces/interface/state=UNKNOWN
/interfaces/interface/qlen=500
/interfaces/interface/link-ether=00:ff:2c:2b:ad:1d
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=tap1
/interfaces/interface/index=9
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::2ff:2cff:fe2b:ad1d/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST,UP,LOWER_UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=pfifo_fast
/interfaces/interface/state=UNKNOWN
/interfaces/interface/qlen=500
/interfaces/interface/link-ether=00:ff:5b:a5:6c:41
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=tap2
/interfaces/interface/index=11
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::2ff:5bff:fea5:6c41/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST,UP,LOWER_UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=pfifo_fast
/interfaces/interface/state=UNKNOWN
/interfaces/interface/qlen=500
/interfaces/interface/link-ether=00:ff:ee:dc:b7:5b
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=tap3
/interfaces/interface/index=13
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::2ff:eeff:fedc:b75b/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever
/interfaces/interface/
/interfaces/interface/flags=BROADCAST,MULTICAST,UP,LOWER_UP
/interfaces/interface/mtu=1500
/interfaces/interface/qdisc=pfifo_fast
/interfaces/interface/state=UNKNOWN
/interfaces/interface/qlen=500
/interfaces/interface/link-ether=00:ff:78:29:9c:b9
/interfaces/interface/brd=ff:ff:ff:ff:ff:ff
/interfaces/interface/name=tap4
/interfaces/interface/index=15
/interfaces/interface/address/
/interfaces/interface/address/inet6=fe80::2ff:78ff:fe29:9cb9/64
/interfaces/interface/address/scope=link
/interfaces/interface/address/valid_lft=forever
/interfaces/interface/address/preferred_lft=forever

а потом с помощью программки 2xml из пакета xml2 эти строки превращаются в xml. программка эта выдаёт совсем уже в виде одной строки, поэтому для красоты можно пропустить через xmlindent (из одноимённого пакета):

Код: Выделить всё

$ ip -o a | ./ipa2xml.sed | 2xml | xmlindent
<interfaces>
    <interface>
        <flags>LOOPBACK,UP,LOWER_UP</flags><mtu>16436</mtu><qdisc>noqueue</qdisc><state>UNKNOWN</state><link-loopback>00:00:00:00:00:00</link-loopback><brd>00:00:00:00:00:00</brd><name>lo</name><index>1</index>
        <address>
            <inet>127.0.0.1/8</inet><scope>host</scope>
        </address>
        <address>
            <inet6>::1/128</inet6><scope>host</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST,UP,LOWER_UP</flags><mtu>1500</mtu><qdisc>pfifo_fast</qdisc><state>UNKNOWN</state><qlen>1000</qlen><link-ether>00:1d:60:7f:3f:49</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>eth0</name><index>2</index>
        <address>
            <inet6>fe80::21d:60ff:fe7f:3f49/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>NO-CARRIER,BROADCAST,MULTICAST,UP</flags><mtu>1500</mtu><qdisc>pfifo_fast</qdisc><state>DOWN</state><qlen>1000</qlen><link-ether>00:04:79:67:b4:93</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>eth1</name><index>3</index>
        <address>
            <inet>10.10.10.1/24</inet><brd>10.10.10.255</brd><scope>global</scope>
        </address>
        <address>
            <inet>192.168.1.11/24</inet><scope>global</scope>
        </address>
        <address>
            <inet>192.168.0.2/30</inet><scope>global</scope>
        </address>
        <address>
            <inet6>fe80::204:79ff:fe67:b493/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST,UP,LOWER_UP</flags><mtu>1500</mtu><qdisc>noqueue</qdisc><state>UNKNOWN</state><link-ether>00:1d:60:7f:3f:49</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>br0</name><index>4</index>
        <address>
            <inet>192.168.0.72/24</inet><brd>192.168.0.255</brd><scope>global</scope>
        </address>
        <address>
            <inet6>2001:470:1f0b:e1:21d:60ff:fe7f:3f49/64</inet6><scope>global-dynamic</scope><valid_lft>2445897sec</valid_lft><preferred_lft>458697sec</preferred_lft>
        </address>
        <address>
            <inet6>fe80::21d:60ff:fe7f:3f49/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST</flags><mtu>1500</mtu><qdisc>noop</qdisc><state>DOWN</state><qlen>1000</qlen><link-ether>0a:00:27:00:00:00</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>vboxnet0</name><index>5</index>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST,UP,LOWER_UP</flags><mtu>1500</mtu><qdisc>pfifo_fast</qdisc><state>UNKNOWN</state><qlen>500</qlen><link-ether>00:ff:61:75:25:54</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>tap0</name><index>7</index>
        <address>
            <inet6>fe80::2ff:61ff:fe75:2554/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST,UP,LOWER_UP</flags><mtu>1500</mtu><qdisc>pfifo_fast</qdisc><state>UNKNOWN</state><qlen>500</qlen><link-ether>00:ff:2c:2b:ad:1d</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>tap1</name><index>9</index>
        <address>
            <inet6>fe80::2ff:2cff:fe2b:ad1d/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST,UP,LOWER_UP</flags><mtu>1500</mtu><qdisc>pfifo_fast</qdisc><state>UNKNOWN</state><qlen>500</qlen><link-ether>00:ff:5b:a5:6c:41</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>tap2</name><index>11</index>
        <address>
            <inet6>fe80::2ff:5bff:fea5:6c41/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST,UP,LOWER_UP</flags><mtu>1500</mtu><qdisc>pfifo_fast</qdisc><state>UNKNOWN</state><qlen>500</qlen><link-ether>00:ff:ee:dc:b7:5b</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>tap3</name><index>13</index>
        <address>
            <inet6>fe80::2ff:eeff:fedc:b75b/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
    <interface>
        <flags>BROADCAST,MULTICAST,UP,LOWER_UP</flags><mtu>1500</mtu><qdisc>pfifo_fast</qdisc><state>UNKNOWN</state><qlen>500</qlen><link-ether>00:ff:78:29:9c:b9</link-ether><brd>ff:ff:ff:ff:ff:ff</brd><name>tap4</name><index>15</index>
        <address>
            <inet6>fe80::2ff:78ff:fe29:9cb9/64</inet6><scope>link</scope><valid_lft>forever</valid_lft><preferred_lft>forever</preferred_lft>
        </address>
    </interface>
</interfaces>
чем не xml?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: вывод информации в xml формате

Сообщение sash-kan »

кстати, в процессе написания обнаружил забавный баг (или грустную фичу) sed-а:

Shell

$ echo '1' | sed 's/ \+/ /g;s/\(1\)$/\1/;ta;s/$/ - не единица/;bb;:a;s/$/ - единица/;:b' 1 - единица $ echo '0' | sed 's/ \+/ /g;s/\(1\)$/\1/;ta;s/$/ - не единица/;bb;:a;s/$/ - единица/;:b' 0 - не единица

но:

Shell

$ echo ' 1' | sed 's/ \+/ /g;s/\(1\)$/\1/;ta;s/$/ - не единица/;bb;:a;s/$/ - единица/;:b' 1 - единица $ echo ' 0' | sed 's/ \+/ /g;s/\(1\)$/\1/;ta;s/$/ - не единица/;bb;:a;s/$/ - единица/;:b' 0 - единица

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: вывод информации в xml формате

Сообщение drBatty »

sash-kan писал(а):
03.11.2010 04:04
кстати, в процессе написания обнаружил забавный баг (или грустную фичу) sed-а:

да никакая она не грустная - я про неё уж цать раз писал, в info sed тоже много букв про это.

Команда s устанавливает, но НЕ СБРАСЫВАЕТ флаг перехода.

Потому, если в вашем коде

Код: Выделить всё

s/// # эта команда что-то всегда заменяет
s/// # эта команда заменяет иногда
t     # команда перехода всегда выполняется

Необходимо сбросить флаг перехода командой t:

Код: Выделить всё

# здесь код в котором есть команды s
t lx # не важно как мы попадём на метку :lx, главное - флаг перехода будет сброшен
:lx
s///
t # а эта команда выполнится лишь если прошлая s что-то заменила

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: вывод информации в xml формате

Сообщение drBatty »

забыл сам однострок исправленный:

$

echo ' 0' | sed -r 's/ +/ /g; t lx; :lx; s/1$/& - единица/; t; s/.*/& - не единица/'

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: вывод информации в xml формате

Сообщение BigBrother »

drBatty писал(а):
02.11.2010 12:40
И всё-же объясните, ЗАЧЕМ?

Есть сервера в облаке амазона, их количество постоянно растет и увеличивается. У этих серверов (инстансов) есть разные параметры и атрибуты (и их много), которые их описывают и идентифицируют. Пока этих инстансов мало, еще можно запомнить что и где. Когда их количество будет больше, уже будет труднее. XML поможет решить задачу по управлению и контролю этими серверами (кто, где, когда, зачем, почему и т.д....). Вся эта инфа, будет хранится в Oracle Berkeley DB XML.
serzh-z писал(а):
02.11.2010 13:51
Другое дело, что оно ему понадобилось не на той планете и не в ту эпоху.

Видимо такой способ сбора и обработки информации еще почти никем не используется... Собственно как и облачные вычисления. Обе эти технологии только набирают обороты, и мало знакомы. Вот по этому, интересует cбор инфы в xml.
зы эта эпоха скоро наступит на этой планете скоро "наступит", и тогда, те, кто будут подготовлены, будут сильно востребованы, вот
Облака и xml - будущее!! имхо конечно :)
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: вывод информации в xml формате

Сообщение serzh-z »

BigBrother писал(а):
03.11.2010 13:17
xml - будущее!! имхо конечно smile.gif
Про xml - боян десятилетней давности. =)
Спасибо сказали: