Search
Write a publication
Pull to refresh
0
0
Алексей Мирошниченко @skl1f

User

Send message

Скрипт мониторинга доступности портов в сети с уведомлением на email (bash)

Reading time4 min
Views18K
Так уж вышло, что живем мы хоть и в продвинутой всякими технологиями стране, но стабильность интернет соединения для городов которые в дали от столицы это редкое явление. Долго выбирал всевозможные сервисы для профессионального мониторинга доступности оборудования в сети. У одних есть проверка только 80 порта веб-сервера, у других возможно проверить ключевое слово на странице, отправлять GET или POST запросы. Нашел сервис лучше других, есть там возможность проверить доступность ssh, но оплата зависит от количества запросов за определенный промежуток времени и естественно количество оборудования которое необходимо мониторить.

Но наткнулся на хороший скрипт Мониторинг портов с уведомлением сисадмина, естественно на хабре. Но как писал выше, стабильность нашего интернета давала некоторую неточность в определении доступности тех или иных серверов в глобальной сети, поэтому я несколько изменил и доработал предложенный скрипт.

— Скрипт начал отсылать не только письмо о недоступности порта, но и появлении его в сети.
— Скрипт присылает на почту письмо и записывает в лог время, количество ошибок при проверке и предыдущее состояние проверки.
— Скрипт присылает на почту письмо только в том случае, если было пять неудачных попыток соединения либо пять удачных после недоступности.
— Скрипт не присылает письмо если в месте расположения скрипта пропал интернет
— Скрипт можно запускать каждую минуту
Читать дальше →

Iodine: DNS туннель через закрытый WiFi

Reading time9 min
Views105K
Дано: полное отсутствие интернета и виднеющийся WiFi hot-spot, в котором предлагают ввести логин-пароль. Или 3G, в котором нет интернета (потому что закончились деньги), но есть страничка провайдера с предложением дать оных денег.
Задача: получить интернет (легальным?) методом посредством туннелирования его через DNS.
Решение: linux+ iodine + routing + NAT + squid, и всё это под управлением network manager'а.
В статье: описание организации DNS туннеля посредсредством программы iodine, нюансы организации маршрутизации через образовавшийся туннель, самописный помощник для iodine и network manager.

Лирика: Занесла меня судьба на славный остров Кипр, кой славен своим П/пафосом, фраппэ и таким интернетом, после которого российские опсосы начинают выглядеть ангелами во плоти. В частности, попытка подключиться к интернетам закончилась ожиданием, что местный провайдер (Сyta) смилостивится, таки закончит пить оный фраппэ и дотянет до меня поганый ADSL 4Мб/768кбит всего-навсего за €151 (подключение) + €40 в месяц (за 4 мегабита! >_<). Ожидание тянулось и тянулось (как бы уже третья неделя пошла), а рядом был славный PrimeTel, который предлагал за €4/час (172р/час) осчастливить меня интернетом прямо тут и сейчас через едва видный WiFi. Я бы даже и согласился, но видна точка доступа была только на балконе, а в квартире связь была нестабильной и часто терялась. Так что оставалось одно решение (помимо взлома WEP-сети соседей, что уж совсем уголовщина) — это злоупотребить сервисом DNS, который безвозмездно, то есть даром, предоставляет PrimeTel для своих незарегистрировавшихся подлюченцев.

Те, кому интересно «howto» — решение далее по тексту, а пока что начнём с теории процесса.
Читать дальше →

Практическое руководство по Jekyll

Reading time9 min
Views65K
Jekyll на Хабрахабре уже светился. Коротко говоря: это система генерации статических сайтов, ориентированная на блоги. Основная особенность: используется на Github Pages, что позволяет держать исходники сайта в репозитории на Github — а несколько кэширующих серверов его в пределах 10 минут после коммитов будут собирать и отображать посетителям. Если интересно больше и коротко: рекомендую к прочтению эту статью, часть материала которой я упомяну и здесь. А я расскажу о Jekyll поподробнее: как им можно пользоваться по назначению, для чего им пользоваться не по назначению, и на что он вообще способен. Статья ориентирована больше на тех, кто ни с чем подобным ранее не работал (как я, работавший ранее с WordPress), и в большей части статьи Jekyll будет рассматриваться именно как средство ведения блога, хотя ближе к концу будет нечто совсем другое.

Из всех существующих платформ для блогов (движков, сервисов, генераторов) Jekyll мне показался странно выделяющимся. Это скорее моя вина, потому что статическими сайтами я увлёкся не так давно и аналогов не знаю. Jekyll ориентирован на технически грамотных людей, которых больше интересует использование блога по его прямому назначению: публиковать посты в обратном хронологическом порядке, а также обеспечивать более-менее удобную навигацию. Если вам нужно больше, придётся либо попотеть, либо отказаться от большего (ну, или от Jekyll). И такой способ «общения» во многом определяет круг пользователей этой платформы: те, кому нужен сайт с предельно понятной им структурой и минимумом проблем в публикации новых постов.
Читать дальше →

Valentina Studio — бесплатная программа для работы с СУБД

Reading time3 min
Views78K
image Очень многие разработчики считают что лучший интерфейс для работы с базами данных — текстовый интерфейс консольного. Я лично еще не достиг подобного просветления, поэтому больше доверяю GUI-инструментам. Хорошо, если у СУБД как у Postgres есть своя, утилита для работы с БД, а что делать если нет? Или если надо работать с различными базами данных одновременно? Под Windows альтернативных клиентов к различным СУБД — море разливанное. С другими ОС (я в данный момент работаю в OS X) все не так радужно, хотя есть программы разной степени пригодности и удобства. Раньше я использовал Navicat, но недавно нашел еще одно интересное решение, о котором и хочу рассказать: Valentina Studio.

Сразу скажу — я общался с разработчиками, и мне очень импонирует их концепция, то что они делают и как, поэтому я решил просто написать обзор о хорошем инструменте, о котором мало кто знает, поскольку публичный релиз программы состоялся очень недавно. До этого она долгое время разрабатывалась для Valentina DB и только в феврале вышла версия с поддержкой известных популярных баз данных. При этом разработчики приняли достаточно разумное решение — базовая версия совершенно бесплатна, а деньги берут только за несколько мощных «особо профессиональных» функций без которых чаще всего можно обойтись.
Читать дальше →

Python на Хабре

Reading time7 min
Views454K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →

Глобальная карта ветров почти в режиме реального времени

Reading time1 min
Views100K


Любой прогноз погоды привлекает внимание огромного количества людей. Не напрасно «погодные» сайты являются одними из наиболее посещаемых сайтов в мире. Для того, чтобы человек знал, какая погода ждет его в ближайшем будущем, производители мобильного и десктопного ПО создают приложения, показывающие температуру, скорость ветра, возможность выпадения осадков и многое другое.

Читать дальше →

Подготовка к CCIE лабе в домашних условиях

Reading time3 min
Views31K
Начну пожалуй с краткого введения в Cisco CCIE экзамен.
История CCIE началась в 1993 году. Изначально экзамен состоял из двухдневной лабораторной работы, позднее его сократили до одного дня. Согласно Википедии меньше 3% Cisco специалистов удается стать счастливым обладателем CCIE сертификата.

Сам экзамен состоит из двух частей: письменной и лабораторной. На лабу дается 8 часов.
Существует несколько треков: «Маршрутизация и коммутация» (Routing and Switching); «Безопасность» (Security); «Провайдер услуг» (Service Provider); «Передача голоса» (Voice) и т.д.

image
Читать дальше →

Профилирование и отладка Python, отладка

Reading time7 min
Views113K
В предыдущей статье мы закончили разговор о профилировании обзором событийных профайлеров.

Сегодня я предлагаю рассмотреть методы отладки программ.

Начнём!

Поиск кропнутых дубликатов изображений с помощью перцептуальных хешей

Reading time6 min
Views72K
В этой статье пойдет речь о том, как решалась небольшая задачка поиска дубликатов по фрагменту или кропу картинки.



Читать дальше →

Enyo 2. ООП

Reading time5 min
Views6.4K
image

Первый топик постигла участь многих пятничных постов, но не беда!
Я не сдаюсь, а значит мы продолжаем…

В этом топике мы осветим следующие темы:
  • Классы. Определение, создание экземпляров, наследование.
  • Методы и поля классов, конструкторы и методы базового класса

Читать дальше →

Egghead.io — видео курс по AngularJS

Reading time2 min
Views29K
Egghead.io — проект, созданный Джоном Линдвистом (John Lindquist), цель которого создание видео курсов. Как утверждает автор, он никогда не был доволен существующими реализациями сайтов с видео уроками. Поэтому главной его задачей стало применение лучших практик для организации и подачи обучающих видео материалов в сети.
Пока сам ресурс находится в стадии доработки и нуждается в качественном дизайне. Но уже сейчас доступен первый курс видео туториалов по AngularJS.
Проект получил множество хороших отзывов сообщества, также был упомянут в рассылке javascript weekly и на странице javascript в google+.
Читать дальше →

Шпаргалка по Redis

Reading time8 min
Views410K
Про Redis (официальный сайт, материалы на Хабре) написано много, но мне до сего дня не хватало материала, который послужил бы шпаргалкой по его практическому использованию, а так же справочником по базовым теоретическим моментам. Постараюсь заполнить этот пробел в богатой базе знаний Хабра.

Я поставил перед собой цель показать возможности Redis с помощью примеров кода. После публикации приму любые предложения по улучшению материала.

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

Ключи


Redis — хранилище данных в формате «ключ-значение». Факты о ключах:
  • Ключи в Redis — бинарно-безопасные (binary safe) строки.
  • Слишком длинные ключи — плохая идея, не только из-за занимаемой памяти, но так же и в связи с увеличением времени поиска определенного ключа в множестве в связи с дорогостоящим сравнением.
  • Хорошая идея — придерживаться схемы при построении ключей: «object-type:id:field».


Типы данных Redis


  • Строки (strings). Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа, ограничены размером 512 Мб.
  • Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка. Максимальное количество элементов — 232 — 1.
  • Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств. Максимальное количество элементов — 232 — 1.
  • Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы. Максимальное количество пар «ключ-значение» — 232 — 1.
  • Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score».

Про типы данных Redis есть отдельная хорошая статья: «Структуры данных, используемые в Redis».
Читать дальше →

Пишем красивый идиоматический Python

Reading time4 min
Views113K

Иногда сложно найти в Сети правильные, а главное актуальные «best practices» для языка. Документация, конечно же, содержит всю необходимую информацию, но отсеять нужную вещь в абзацах подробного (на то она и документация) описания довольно сложно. Но недавно мне улыбнулся поиск Google, и я наткнулся на очень полезные «паттерны» языка Python от одного из core разработчиков — Raymond Hettinger.

Примечание: Все рекомендации даны в нескольких вариантах: сначала идут самые «плохие» варианты, а дальше предлагается лучшая альтернатива. Актуально для версии языка 2.7, отличия для версии 3.3 читайте в примечаниях к конкретному «паттерну».
Читать дальше →

Делаем админпанель для MySQL и MongoDB на Node.js

Reading time5 min
Views28K

Хотим «phpMyAdmin» (читай web GUI) для ноды


Отсутствие универсальных веб-интерфейсов для управления распространенными СУБД, несколько усложняет освоение Node.js, а разворачивать рядом другой веб-сервер и другой язык с инфраструктурой, ой как не хочется. Открывать порты и управлять базами, подключаясь с другого сервера или со своего рабочего компьютера — это и неудобно и есть соображения безопасности. Поэтому мы решили включить такой инструмент в платформу для веб-приложений Impress, которую анонсировали, о которой я немного писал и которая доступна в открытом коде для всеобщей пользы. Задумка такая: реализовать простой и удобный унифицированный интерфейс для СУБД, которые чаще всего применяются в связке с Node.js, позаботиться о быстром развертывании (просто скопировать папку) и независимости от среды. В бета-версии уже поддерживаются MySQL, MongoDB и в скором времени очередь дойдет до PostgreSQL и Oracle.
Читать дальше →

Несколько JavaScript хаков для хипстеров

Reading time3 min
Views55K
image
JavaScript занимательный язык программирования.

Постоянные опасения совершить ошибки в коде заставляют все время думать. Навыки программирования улучшаются из-за того, что приходится постоянно выполнять код в уме, другого способа нет.

Вот почему важно, чтобы код был аккуратный, компактный и изящный. Такой, в который можно влюбиться. В противном случае, JavaScript может и отпугнуть.

Я подобрал для вас несколько интересных сниппетов, которые радуют меня самого, и которые я сам использую вместо скучного кода, занимающего много места. Некоторые из них делают код короче, другие четче и яснее. Еще парочка — это хаки для отладки.

Все это я узнал, изучая проекты с исходным кодом, но здесь я пишу так, как будто бы это я их придумал.
Читать дальше →

Wireshark — приручение акулы

Reading time10 min
Views1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

Зачем вообще нужны анализаторы пакетов?
Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем.
Вполне очевидно, что для того чтобы максимально эффективно использовать снифферы или анализаторы трафика, необходимы хотя бы общие знания и понимания работы сетей и сетевых протоколов.
Так же напомню, что во многих странах использование сниффера без явного на то разрешения приравнивается к преступлению.

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →

Десктоп в домашнем сервере или «всё-в-одном»

Reading time4 min
Views89K
image
Цель: недорого собрать систему поддерживающую проброс PCI-устройств в виртуальную машину (c IOMMU). Создать полноценное рабочее место, поднять виртуальный маршрутизатор и еще полезные мелочи.
Читать дальше →

Использование сканера уязвимостей OpenVAS

Reading time4 min
Views160K
Сканеры уязвимостей — это программные или аппаратные средства, служащие для осуществления диагностики и мониторинга сетевых компьютеров, позволяющее сканировать сети, компьютеры и приложения на предмет обнаружения возможных проблем в системе безопасности, оценивать и устранять уязвимости. (Википедия).
Известными коммерческими сканерами являются Nessus, GFI LANguard, XSpider.

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

Читать дальше →

Профилирование и отладка Python, инструменты

Reading time14 min
Views114K
В предыдущей статье мы на практике разобрались, где и в каких случаях можно использовать ручное профилирование, а так же познакомились со статистическими профайлерами.

Сегодня мы познакомимся с основной и самой многочисленной группой инструментов — событийными профайлерами.

Приступим!

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity