Чтобы выбрать значение 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
iftop — хорошее решение для сообщения о соединениях. Многие другие существуют также:iptraf -ng, nethog, bmon...
По словам Александра, который объяснил, как использовать iftop и выводить текст , ваше решение состоит в том, чтобы поставить
iftop -t -s 3600 > log-(date +\%Y\%m\%d\%H\%M\%S).txt
в вашем crontab каждый час.
Мне нравитсяvnstat
(также на GitHub). Я думаю, что он делает все то, о чем вы спрашивали -, по крайней мере, он настраивается и активно поддерживается.
Я использую его, потому что он не потребляет много ресурсов, и у меня есть более важные дела с вычислительными циклами в моих небольших системах.