Подсчет байтов на всех соединениях, проходящих через маршрутизатор Linux

Чтобы выбрать значение playlist_urlиз узла channelпо позиции в списке, используйте position()и сравните с некоторым положительным целым числом:

$ xmlstarlet sel -t -v '//channel[position() = 4]/playlist_url' -nl file.xml
http://host.net/aa/vodpr/con_tv_r.php

(в этом случае вы можете использовать только [4]вместо[position() = 4]).

$ xmlstarlet sel -t -v '//channel[position() > 2]/playlist_url' -nl file.xml
http://host.net/aa/vodpr/
http://host.net/aa/vodpr/con_tv_r.php

Чтобы получить последние два из списка неизвестной длины, объедините тест сlast():

$ xmlstarlet sel -t -v '//channel[position() >= last() - 1]/playlist_url' -nl file.xml
http://host.net/aa/vodpr/
http://host.net/aa/vodpr/con_tv_r.php

Чтобы получить второй «защищенный» URL:

$ xmlstarlet sel -t -v '//channel[protected = "True"][2]/playlist_url' -nl file.xml
http://host.net/aa/vodpr/con_tv_r.php
0
14.05.2020, 16:27
2 ответа

iftop — хорошее решение для сообщения о соединениях. Многие другие существуют также:iptraf -ng, nethog, bmon...

По словам Александра, который объяснил, как использовать iftop и выводить текст , ваше решение состоит в том, чтобы поставить

iftop -t -s 3600 > log-(date +\%Y\%m\%d\%H\%M\%S).txt

в вашем crontab каждый час.

0
28.04.2021, 23:14

Мне нравитсяvnstat(также на GitHub). Я думаю, что он делает все то, о чем вы спрашивали -, по крайней мере, он настраивается и активно поддерживается.

Я использую его, потому что он не потребляет много ресурсов, и у меня есть более важные дела с вычислительными циклами в моих небольших системах.

0
28.04.2021, 23:14

Теги

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