Mar. 11th, 2012

dap: (Default)

Намедни взялся за дело, которое уже висело в 2do больше года: написал утилиту для сбора статистики использованного трафика от своего Интернет-провайдера (Vesso-Bel). Статистика отдаётся безо всяких авторизаций, но только для ip, принадлежащих провайдеру.

Спасибо, thephilosoft, BrainFuckerlennier-Raiden и все-все-все! =)

Сначала планировал сделать демона на python, но на волне быдлокодинга на баше решил использовать его и не заморачиваться с демонами. Мой сумрачный гений сначала упёрся в wget и написал скрипт с его использованием, но потом я стал искать опции для запиливания его в conky и внезапно открыл для себя cURL — свободную служебную программу командной строки для копирования файлов по различным протоколам с синтаксисом URL. В итоге была написана новая версия без велосипедов с загаживанием /tmp.

Обе версии принимают в качестве аргумента логин и/или параметр --help. В зависимости от исходных данных отдаётся справочная информация, сообщение о неверном логине или статистика в формате Использовано(МБайт) / Осталось (МБайт) | Всего (ГБайт). Если вдруг кто-нибудь захочет его использовать и/или внести пожелания,— милости просим.

Пробежимся по тексту и рассмотрим нюансы. Текстовую строку можно нужно разбивать слешем и началом новой строки (нажатием энтера). Вместо выравнивания пробелами, можно использовать табуляцию . При сравнении аргументы желательно оборачивать в двойные кавычки "". После [ и перед ] пробелы обязательны. При выводе и присваивании значения переменной тоже желательно оборачивать её или содержимое в двойные кавычки. grep -o отображает только то (а не строку, содержащую это), что подпадает под аргумент (например, равно аргументу или удовлетворяет шаблону). $@ соответствует списку параметров запуска скрипта, разделённых пробелами. Из-за политики zsh в отношении разделителей в зет-шелле по умолчанию этот скрипт работать не будет. Нужно разрешить пробелы в качестве разделителя или убрать справку.

Осталось запилить это дело в conky. Поскольку забирать статистику каждые две секунды (такая у меня частота обновления информации) я считаю как минимум странным, стал вопрос в поиске возможности другого интервала обновления для отдельных команд. Таких оказалось целых три: execi, texeci и execpi. Насколько я понял, третья проделывается каждый стандартный интервал обновления, но новый результат отображается только по прошествии заданного промежутка; вторая является вариантом первой, команда обрабатывается в отдельном потоке (для тяжёлых скриптов); а первая является именно тем, что мне нужно. На том и порешил:

dap: (Default)

Намедни взялся за дело, которое уже висело в 2do больше года: написал утилиту для сбора статистики использованного трафика от своего Интернет-провайдера (Vesso-Bel). Статистика отдаётся безо всяких авторизаций, но только для ip, принадлежащих провайдеру.

Спасибо, thephilosoft, BrainFuckerlennier-Raiden и все-все-все! =)

Сначала планировал сделать демона на python, но на волне быдлокодинга на баше решил использовать его и не заморачиваться с демонами. Мой сумрачный гений сначала упёрся в wget и написал скрипт с его использованием, но потом я стал искать опции для запиливания его в conky и внезапно открыл для себя cURL — свободную служебную программу командной строки для копирования файлов по различным протоколам с синтаксисом URL. В итоге была написана новая версия без велосипедов с загаживанием /tmp.

Обе версии принимают в качестве аргумента логин и/или параметр --help. В зависимости от исходных данных отдаётся справочная информация, сообщение о неверном логине или статистика в формате Использовано(МБайт) / Осталось (МБайт) | Всего (ГБайт). Если вдруг кто-нибудь захочет его использовать и/или внести пожелания,— милости просим.

Пробежимся по тексту и рассмотрим нюансы. Текстовую строку можно нужно разбивать слешем и началом новой строки (нажатием энтера). Вместо выравнивания пробелами, можно использовать табуляцию . При сравнении аргументы желательно оборачивать в двойные кавычки "". После [ и перед ] пробелы обязательны. При выводе и присваивании значения переменной тоже желательно оборачивать её или содержимое в двойные кавычки. grep -o отображает только то (а не строку, содержащую это), что подпадает под аргумент (например, равно аргументу или удовлетворяет шаблону). $@ соответствует списку параметров запуска скрипта, разделённых пробелами. Из-за политики zsh в отношении разделителей в зет-шелле по умолчанию этот скрипт работать не будет. Нужно разрешить пробелы в качестве разделителя или убрать справку.

Осталось запилить это дело в conky. Поскольку забирать статистику каждые две секунды (такая у меня частота обновления информации) я считаю как минимум странным, стал вопрос в поиске возможности другого интервала обновления для отдельных команд. Таких оказалось целых три: execi, texeci и execpi. Насколько я понял, третья проделывается каждый стандартный интервал обновления, но новый результат отображается только по прошествии заданного промежутка; вторая является вариантом первой, команда обрабатывается в отдельном потоке (для тяжёлых скриптов); а первая является именно тем, что мне нужно. На том и порешил:

dap: (Default)

Чтобы при редактировании в nano применялась подсветка содержимого нужно запилить в /etc/nanorc строки на подобие include "/usr/share/nano/spec.nanorc". Список файлов можно взять в /usr/share/nano/.

Няшный гит обрабатывает запросы типа git add /k*/*blabla*

Ништяки: sudo zypper in --no-recommends avidemux-qt avidemux-lang leechcraft-pintab obs-service-set_version

Мусор: sudo zypper rm -u plasmoid-veromix python-kdebase4 python-devel python-kde4 hplip-hpijs python-gtk libproxy1-config-gnome3 python-gtk

Пинтаб добавляет возможность закреплять вкладки (раньше было в ядре). Веромикс надоел. Питоногтк было нужно было для скайпа из репа, поправил в десктоп-файле skype на skype-bin, и никаких гвоздей. set_version позволяет локально использовать соответствующий сервис.

Внезапно видео, закодированное для MP630, не пошло на Digma Q2 (видеоряд воспроизводился словно в ускоренном режиме). Пришлось качнуть утилиту с сайта производителя и посмотреть правильные параметры для менкодера. Заодно объявил кастинг на графическую утилиту с массовым конвертированием и возможностью ручного допиливания параметров кодировщика. Изначально всё складывалось печально, и уже появилась мысль сваять самому, но SD насоветовал LinCoder. Конечно, java, но завелось и шевелится на OpenJDK. Зато дополнительно поддерживает возможность создания преднастроек, чем я сразу же и воспользовался, после чего собрал пропатченный (в тексте патча можно найти правильные параметры) пакет в хомяке.

По ходу поставил древний пакет AcidRip, который меня "порадовал":

Can't locate AcidRip/acidrip.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.14.2 /usr/lib/perl5/vendor_perl/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.14.2 /usr/lib/perl5/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/5.14.2 /usr/lib/perl5/site_perl/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.14.2 /usr/lib/perl5/site_perl .) at /usr/bin/acidrip line 11.
BEGIN failed--compilation aborted at /usr/bin/acidrip line 11.

С помощью ascrazy завёл, нужно в /usr/bin/acidrip сделать

#!/usr/bin/perl -w
BEGIN { unshift @INC, '/dir/'; };

Где /dir/ — это каталог с AcidRip/acidrip.pm. Завелось, но нет возможности допиливания параметров.

gopreload — демон, используется для сокращения времени "холодного" старта приложений. В отличии от preload, загружает в память только библиотеки для явно указанных приложений. Разработан на форуме Gentoo. Вроде бы работает c systemd. После установки (ОБС/reki) открываем Яст и врубаем в системных службах. Даём права записи для пользователя на папку настроек: sudo chmod 777 /usr/share/gopreload/enabled/ Обрабатываем пользовательские приложения: gopreload-prepare plasma-desktop например. При этом они иногда запускаются, так что осторожно. Обрабатываем приложения рута: sudo gopreload-prepare kvpnc. Я добавил kvpnc, kwin, leechcraft, opera, plasma-desktop и qmmp. Подпиливаем права на файлы настроек:

cd /usr/share/gopreload/enabled
sudo chmod 666 *
dap: (Default)

Чтобы при редактировании в nano применялась подсветка содержимого нужно запилить в /etc/nanorc строки на подобие include "/usr/share/nano/spec.nanorc". Список файлов можно взять в /usr/share/nano/.

Няшный гит обрабатывает запросы типа git add /k*/*blabla*

Ништяки: sudo zypper in --no-recommends avidemux-qt avidemux-lang leechcraft-pintab obs-service-set_version

Мусор: sudo zypper rm -u plasmoid-veromix python-kdebase4 python-devel python-kde4 hplip-hpijs python-gtk libproxy1-config-gnome3 python-gtk

Пинтаб добавляет возможность закреплять вкладки (раньше было в ядре). Веромикс надоел. Питоногтк было нужно было для скайпа из репа, поправил в десктоп-файле skype на skype-bin, и никаких гвоздей. set_version позволяет локально использовать соответствующий сервис.

Внезапно видео, закодированное для MP630, не пошло на Digma Q2 (видеоряд воспроизводился словно в ускоренном режиме). Пришлось качнуть утилиту с сайта производителя и посмотреть правильные параметры для менкодера. Заодно объявил кастинг на графическую утилиту с массовым конвертированием и возможностью ручного допиливания параметров кодировщика. Изначально всё складывалось печально, и уже появилась мысль сваять самому, но SD насоветовал LinCoder. Конечно, java, но завелось и шевелится на OpenJDK. Зато дополнительно поддерживает возможность создания преднастроек, чем я сразу же и воспользовался, после чего собрал пропатченный (в тексте патча можно найти правильные параметры) пакет в хомяке.

По ходу поставил древний пакет AcidRip, который меня "порадовал":

Can't locate AcidRip/acidrip.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.14.2 /usr/lib/perl5/vendor_perl/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.14.2 /usr/lib/perl5/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/5.14.2 /usr/lib/perl5/site_perl/5.14.2/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.14.2 /usr/lib/perl5/site_perl .) at /usr/bin/acidrip line 11.
BEGIN failed--compilation aborted at /usr/bin/acidrip line 11.

С помощью ascrazy завёл, нужно в /usr/bin/acidrip сделать

#!/usr/bin/perl -w
BEGIN { unshift @INC, '/dir/'; };

Где /dir/ — это каталог с AcidRip/acidrip.pm. Завелось, но нет возможности допиливания параметров.

gopreload — демон, используется для сокращения времени "холодного" старта приложений. В отличии от preload, загружает в память только библиотеки для явно указанных приложений. Разработан на форуме Gentoo. Вроде бы работает c systemd. После установки (ОБС/reki) открываем Яст и врубаем в системных службах. Даём права записи для пользователя на папку настроек: sudo chmod 777 /usr/share/gopreload/enabled/ Обрабатываем пользовательские приложения: gopreload-prepare plasma-desktop например. При этом они иногда запускаются, так что осторожно. Обрабатываем приложения рута: sudo gopreload-prepare kvpnc. Я добавил kvpnc, kwin, leechcraft, opera, plasma-desktop и qmmp. Подпиливаем права на файлы настроек:

cd /usr/share/gopreload/enabled
sudo chmod 666 *

January 2016

S M T W T F S
     12
34567 89
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Nov. 13th, 2025 04:56 pm
Powered by Dreamwidth Studios