Эхо из прошлого: grunka и wormulongrunka, wormulon, screen, hardstatus, linux

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 подобных операционных системах.

Охранные автомобильные комплексы и уникальная установка автосигнализаций помогающая предотвратить угон лучше чем обычно благодаря творческому и неординарному подходу в защите.
12-04-2010, 12:11    Комментарии: 5

MCabber: количество непрочитанных сообщений в GNU Screenmcabber, screen, hardstatus, shell, dotfiles, linux

Вообще не только в screen, а где угодно. Но у меня это именно в screen, поэтому и показываю на его примере.

В настройках mcabber есть опция statefile для которой указывается файл в котором будут построчно сохранятся списки адресов приславших вам сообщение. Как только сообщение будет прочитано адресат из этого списка пропадает, если нет ниодного непрочитанного сообщения то и указанного файла не существует. Для работы опции statefile необходимо включить опцию logging (так же эта опция нужна и для истории сообщений)

Редактируем ~/.mcabber/mcabberrc
set logging = 1
#дальнейшие параметры логированиия  
set statefile = ~/.mcabber/mcabber.state

И пишем небольшой скрипт который будет вызываться из screen. У мну в скрипте (извиняюсь за то что он на zsh) считается количество строк, вообще можно проверять наличие файла — если файл есть значит есть и сообщения.
#!/bin/zsh

MCABBER_NO=`cat ~/.mcabber/mcabber.state &>/dev/null|wc -l`
[[ "$MCABBER_NO" -gt "0" ]] && echo "$MCABBER_NO message"
exit 0

Как вызывать внешние команды hardstatus screen'а я уже писал
В .screenrc дописываем backtick номер 1 1 /путь/до/скрипта ну и в нужное место hardstatus вставляем %номер`. У меня сделано жирным красным мигающим текстом %{+Bb r}%3`%{-Bb d.}
количество непрочитанных из mcabber в screen
15-07-2009, 09:48    Комментарии: 5

Вывод числа непрочитанных писем в GNU Screenscreen, gmail, fetchmail, hardstatus, caption, shell, dotfiles, linux

Прочитал заметку о том как получать число непрочитанных писем Gmail в статус баре GNU Screen.

У мну в hardstatus (почти тот же caption, только при разбивке GNU Screen на регионы он остается внизу, а на каждом регионе отображается именно caption) тоже показывается количество входящих в gmail, а так как я использую imap, то заодно и общее количество писем. В общем не буду долго распинаться, Сразу приведу листинг конфигов и скриптов. Кстати, благодаря fetchmail можно смотреть количество сообщений не только в gmail, но и в других почтовых ящиках

Скрипт проверки почты
#!/bin/sh

# каталог imap, в которыом проверять (можно несколько, через запятую):
IMAPDIRS="INBOX"
TOTALMSG=0
SEENMSG=0

	# вывод fetchmail:
	CHECKMAIL=`fetchmail -c -r $IMAPDIRS`

	# всего сообщений:
	_TOTALMSG=`echo $CHECKMAIL | cut -d " " -f 1`
	# прочитанных сообщений:
	_SEENMSG=`echo $CHECKMAIL | cut -d "(" -f 2 | cut -d " " -f 1`

	# считаем общее количество сообщений:
	TOTALMSG=`echo $_TOTALMSG | awk -v _totalmsg="$_TOTALMSG" '{ totalmsg += $1} END {print totalmsg}'`

	# считаем количество прочитанных сообщений:
	SEENMSG=`echo $_SEENMSG | awk -v _seenmsg="$_SEENMSG" '{ seenmsg += $1} END {print seenmsg}'`

	# считаем количество непрочитанных сообщений:
	let "NEWMSG = $TOTALMSG - $SEENMSG"

	# выдаём строку "непрочитанных/всего":
	echo $NEWMSG/$TOTALMSG
~/.fetchmailrc

poll imap.gmail.com with proto IMAP
    user "USER@gmail.com" there with password "PASS"
    options nofetchall keep ssl
Для использования просто добавляем %1` в caption или hardstatus и директиву похожую на backtick 1 60 60 путь_к_скрипту_проверки_почты
Где, еденица это id, каждый id можно выводить отдельно, %` (%номер`), а последующие цифры это количество секунд в течении которых вывод можно считать действительным и время обновления соответственно.
04-05-2009, 12:56    Комментарии: 1