войти зарегистрироваться

Системное администрированиеАвтоматизация обработки видео-файлов с web-камер средствами shell из песочницы

Понадобилось начальству в своё время организовать своими силами видео-наблюдение за некоторыми вещами и уложиться в минимальное финансирование. Задача автоматизировать это легла на плечи системного администратора, то есть – меня.
Дано: N – видео-камер D-Link 2102, физический двух-юнитовый сервер под сервер видео-наблюдения и удаленное файло-хранилище.
Результатом должна быть возможность пускать некоторых пользователей на сервер видеонаблюдения в онлайн режиме и организовать архив видеозаписей.

Под катом несколько скриптов, которые сильно помогли мне понять, как лучше писать код, зачем нужны многие вещи и как они решаются, а так же навести порядок в своей голове и очень надеюсь, что они помогут кому-то еще.
Проект писался достаточно сложно — настолько сильно я shell(bash) скрипты не изучал — не было надобности до этого.
Но, когда задача поставлена и в голове есть алгоритм решения — все скрипты были переделаны так, чтобы читая их через пол года у меня и моего преемника не было вопросов и желания переписать все с нуля.

UPD: пост периодически обновляется.

*nixxlayout. Управление окнами X из командной строки

Однажды у меня возник вопрос о том, как управлять геометрией окон в X Window из командной строки. На первый взгляд все просто — при запуске программы достаточно указать дополнительный параметр -geometry и передать размер и положение для создаваемого окна. Пример:
xclock -geometry 150x150+0+0
, где 150x150 — размер окна по горизонтали и вертикали, а 0+0 — положение окна относительно верхнего левого угла экрана.
Впрочем, это все есть в мануале по X.
Ну а как насчет уже запущенных приложений? Как управлять ими?
Для этой цели можно использовать небольшую программу xlayout. О ней и ее использовании дальше в посте.

Электронные книгиЧитаем DJVU и PDF на шестидюймовом ридере с комфортом из песочницы

Бытует мнение, что на электронных книгах с e-ink дисплеями, можно комфортно читать только текстовые книжки, где можно выставить большой шрифт, а вот pdf и тем более сканы в djvu читать практически невозможно, глаза сломаешь разбирать мелкие буквы на небольшом дисплее. Спешу вас разуверить, читать такие книги вполне можно комфортно.

*nixПарсер на shell с обходом XOR-шифрования при авторизации из песочницы

Недавно возникла необходимость в парсере интернет-счета банковской карты для дальнейшего уведомления об операциях посредством смс\e-mail. Сделать это было решено по-быстрому шел-скриптом, который будет парсить страницу со счетом с определенной периодичностью при помощи задания в cron, а в случае изменения баланса счета — высылать сообщение на мобильный телефон или e-mail. Ничего сложного на первый взгляд, однако в ходе написания пришлось решить некоторые сложности, о которых вы сможете прочесть под катом.

NokiaПишем простое, но полезное приложение для Nokia N900 за 20 минут

Приветствую, уважаемый хабраюзер!
В данной заметке я расскажу об интересных свойствах операционной системы Maemo с точки зрения
системного администратора Unix. Цель заметки — показать удобство написания приложений под данную ОС.

Писать приложение мы будем на Shell. А почему бы и нет? — ведь для Maemo это родная среда!

Информационная безопасностьКак работает WebsiteDefender

Несколько недель назад заметил в плагине для Wordpress wp security scan рекламу другого сервиса websitedefender для защиты сайтов. На сайте кроме стандартной маркетинговой шелухи толком ничего полезного не нашел, но несколько заинтриговали слова о революционно ином способе работы этого сервиса, отличающемся от уже существующих. Гугл ничего полезного не выдал о том, как же все-таки работает этот сервис.

Исторически так сложилось, что большинство считает достаточным защиту только от атак извне — SQL, XSS-инъекций, LFI\RFI, CSRF и т.п, забывая про атаки на файлы веб-приложений. Те же WAF, такие как mod_security, phpids — яркий тому пример.

Мне это кажется не очень справледливым, поэтому я захотел рассмотреть возможности сервиса WebsiteDefender, который по описанию должен уметь защищать файлы веб-приложений от модификаций.

Предлагается скачать некий агент – php-file, в котором целый набор функций для шифрования и… конструкция
$success = @eval('?>'.$request->params);

Вопрос, что же делает этот php код, возник еще до его скачивания, а после беглого просмотра и нахождения такого интересного арсенала появляется еще больше вопросов. Хотя компания вроде бы довольно известная — Acunetix, ставить кота в мешке себе на сайт вряд ли кому захочется.

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

Groovy & GrailsПишем deploy-скрипт для Grails

Зачем нужен deploy-скрипт


Grails-приложения очень легко собираются в WAR. Делается это так:

grails war

Помимо того, что WAR собирается, очень хочется этот WAR еще и установить на сервер. В нашем случае это Tomcat. Установка вручную требует некоторой возни:
  1. Остановить сервер. Убить процесс, если он не остановился сам.
  2. Удалить старые файлы приложения (на всякий случай)
  3. Скопировать новый WAR на сервер. Иногда его нужно переименовывать (скажем, в ROOT.war)
В Maven эту работу может проделать, например, cargo plugin. Но с ним много приключений и настройки, причем он не особо учитывает особенности сервере.

Мы также можем использовать shell-скрипт. Но зачем писать на неудобном языке shell, когда есть замечательный кроссплатформенный язык Groovy?

Django FrameworkНастройка сервера для django-проектов с нуля

Хочу поделиться опытом настройки сервера для django-проектов. Так вышло, что мне часто приходится настраивать с нуля VPS-сервера для запуска на них django-сайтов. Как-то мне в голову пришла идея записать пошагово процесс настройки. Оказалось, что “по бумажке” выполнять эти рутинные операции гораздо проще и быстрее — все нюансы записаны, трудно что-то упустить. Дальше больше — я превратил инструкцию в самостоятельный shell-скрипт — запустил и сервер готов. Я думаю, некоторым python-разработчикам, особенно начинающим, будет полезно ознакомиться с содержимым скрипта. С некоторыми доработками вы, возможно, захотите использовать его в своей практике.

Системное администрированиеЗаметки гика. zsh shell

Дубль первый.


В какой то момент возникла острая необходимость заиметь англо-русский словарь в консоли,
в ходе 2 минутного поиска по пакетам счастья не было обнаружено.
Ну что же, придется делать свой словарь, вспомнив что в chromium стоит плагин для словаря было принято решение распотрошить его содержимое, и прикрутить словарь от google к консоли.
Ну а далее код для zsh.
В комментах ресурсы которые были просмотрены в ходе поиска решения.

ИнтерфейсыМысли об интерфейсах будущих Windows

Вот люди гадают, какой будет Windows 8. Судя по первым скриншотам — то же самое, что и в семерке. А ведь есть гениальное решение — передрать интерфейс с мобильных ОС вроде iOS и Android! Особенно с их планшетных версий, которые работают почти с теми же размерами экрана, что и десктопы.

Это же очень удобная система, возьмем за образец Андроид — основные приложения на мультидесктопе (кстати, то что больше одного рабочего стола в Windows нет ДО СИХ ПОР… ну, вы поняли), остальные по клику на большую кнопку (нафиг меню «Пуск»), вверху панель с запущенными задачами и их индикаторами, ну и виджеты на десктопе, понятно — они уже есть.

Я, конечно, не на 100% уверен, но по-моему интерфейсные решения с мобильных ОС намного сильнее проработанны, чем десктопные, потому что дизайнерам пришлось трудиться в очень узких условиях. Я бы воспользовался таким shell-ом даже ради эксперимента, мне кажется, тут есть куда копать.