Эхо из прошлого: grunka и wormulon

grunka и wormulon В далеком 2003 году добрый человек написал пару мелких приблуд — одну мониторинга качества wifi соединения, другую для мониторринга скорости какого-либо сетевого интерфейса.
Написаны эти две приблуды были для того что бы выводить эту информацию в хардстатусе GNU Screen, но как мы понимаем и в dzen2...

Обе утилиты работают так же как skb, т.е. просто выдают на stdout некоторую информацию. К сожалению, в отличии от skb в них нельзя сделать одинарную выдачу, а только постоянный вывод (период можно изменять) на stdout.

Применяются просто, к примеру для вывода в хардстатус GNU Screen достаточно записать в .screenrc что-то вроде
hardstatus alwayslastline "%1` %2`"
backtick 1 0 0 /usr/bin/wormulon -i wlan0
backtick 2 0 0 /usr/bin/grunka -i wlan0
и мы получим в статусе строку вида
in 39 K/s out 1 K/s quality: 92 (-30/-116)
sed'ом или awk'ом пройтись по выводу никто не запрещает.

Как вы уже заметели имя сим чудным программам grunka и wormulon, обявлено о их выходе было в списке рассылки gnu.screen. Но сайт разработчика приказал долго жить и исходники найти достаточно трудно, но к счастию оказалось возможно.

wormulon-0.1.3.tar.gz (PKGBUILD)
grunka-0.0.2.tar.gz (PKGBUILD)
В AUR пкгбилды не выкладываю, ибо поддерживать не собираюсь по той причине что как оказалось мои скромные запросы вполне удовлетворяет что либо наподобие
iwconfig wlan0 |grep "Quality"|awk -F/ '{print $1}'

Но, возможно, кому-то эти полезняшки будут весьма полезны, к тому же работают они не только в Linux (grunka только в linux и freebsd) но и во freebsd, hpux, netbsd, openbsd, solaris и возможно других unix подобных операционных системах.
McLeod095` 10-04-2010
ИМХО.
После более менее внимательного прочтения док по awk записи вида
iwconfig wlan0 |grep "Quality"|awk -F/ '{print $1}'
просто раздражают.
не проще ли и быстрее
iwconfig wlan0| awk -F"/" '/Quality/{print $1}'
muhas 10-04-2010
спасибо, не знал. вообще надо в awk/sed получше повтыкать, а то знания только поверхностные...
McLeod095` 10-04-2010
Не смог запостить еще. Хотя написал прилично. Попробую повторить.
Вообще начал с того что хотел показать скрипт который у переписал на awk заменив им grep и if. После чего скрипт уместился в 2 строки, одна из которых #!/bin/bash, и строка не была больше размера терминала.
Но не получилось т.к. не нашел его.
Но хочу показать пару примеров написанных в разное время но делающих одно и тоже

ntpdate -q $1 2>&1 | awk '/stratum/ {print gsub("",",",$4)}'

ntpdate -q $1 2>&1 | awk '/stratum/ {split($4,A,",");print A[1]}'

Ну и вдовесок так для развития.
[root@ns ~]# echo "N" | awk '/Y/ && !/N/{print "1"} /N/ && !/Y/{print"0"}'
0
[root@ns ~]# echo "Y" | awk '/Y/ && !/N/{print "1"} /N/ && !/Y/{print"0"}'
1
muhas 10-04-2010
Cпасибо! надо точно почитать о awk - вообще давно собираюсь но что-то не доходят руки до этого дела. всё по мелочи да по мелочи а так что бы полностью man прочесть всё никак, мощная штука этот awk
McLeod095 10-04-2010
У меня тоже руки не доходили.
Но в один прекрасный момент мне пришлось довольно быстро написать парсер довольно большого количества информации. Если быть точным то мне надо было предоставлять отчет о проделанном резервном копировании за прошедший месяц выполненный системой резервирования bacula. Естественно эту информацию мне необходимо предоставлять ежемесячно, да еще и с учетом новых серверов и т.п. В то время я еще не знал perl. А программу надо было написать. Через несколько часов мучений, копания в доках я все таки написал скрипт, но он был очень громоздким и выводил информацию не в табличном виде. Поэтому мне захотелось чего то более приятного. В итоге на скрипт я убил пару дней (конечно не полностью, а занимался по мере появления свободного времени), в итоге родился скрипт который использует awk. Самый большой его плюс, что он стал очень не таким большим как до этого. Но и самое приятное он стал более функциональным. Теперь он не только отсылает почту но и приятно оформляет ее в табличном виде с помощью html, ну и т.п. После этого я начал более активно использовать awk.
ЗЫ. Если кого-то данные комменты сподвигнут на изучение новых языков программирования или т.п. буду только рад. Да и буду рад почитать на просторах интернета красивые решения появившихся задач.