Pull to refresh
4
0.1
Сергей @Semy

User

Send message

Как изменить цвет текста в терминале Linux

Reading time10 min
Views61K
Небольшое руководство и простой bash скрипт, чтобы сделать вывод вашего кода немного более ярким и красочным

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

⬇️ Скачать color.zip — 2.7 KB (прим. редактора — потребуется регистрация на сайте)
Читать дальше →

6 приложений для анализа жесткого диска в Linux

Reading time2 min
Views107K
imageВы недавно купили винт на терабайт, но при попытке установить новую программу появляется сообщение «Your disk is full». Знакомая ситуация?
При покупке жесткого диска, я обычно стараюсь взять самый большой, чтобы было где разместить всю коллекцию видео и музыки, а также была возможность устанавливать и тестировать любое ПО. Однако, я заметил, что независимо от того, насколько велик жесткий диск, свободное место на нем быстро заканчивается.Если у вас та же проблема, значит пришло время проанализировать загрузку жесткого диска, и удалить все лишнее.
Далее по тексту, несколько способов сделать это в Linux.
Читать дальше →

Решаем проблему «деградации» YouTube с помощью NoDPI

Level of difficultyEasy
Reading time5 min
Views105K

Салют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как GoodbyeDPI (большое спасибо @ValdikSS!). Сегодня я хочу представить вам (почти) свою разработку - аналог GoodbyeDPI.

Около полугода назад в своей статье Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1 (заблокирована по требованию РКН) я рассказывал о том, как скачивать видео с YouTube на Python, а так как YouTube у нас "деградировал", я поделился инструментом, с помощью которого можно исправить этот вопиющий недостаток. Инструмент тогда выглядел достаточно сыро, и несмотря на то, что он выполнял свою задачу, требовал серьезных улучшений. Увидев интерес общественности, я решил допилить его, и вот, спустя полгода, после немалой работы, я рад представить вам NoDPI - проект, который явно не понравится РКН (и он опять меня заблокирует).

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

Читать далее

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Level of difficultyEasy
Reading time13 min
Views171K

Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

Восстановление открытых файлов но удаленных c файловой системы linux

Reading time2 min
Views34K
Всех с прошедшим новым годом!
В этой заметке я бы хотел поделиться как можно восстановить открытый файл в linux.

Предыстория


Зашел человек на канал посвященный debian в jabber и сказал что взломали его jabber-bot и выполнили команду:
$ rm -rf /*

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

ChatGPT без VPN за 10 минут (и установка нативного приложения)

Level of difficultyEasy
Reading time4 min
Views173K

Уверен, многие читатели Хабра знакомы с этим способом, ведь он существует не первый день. Чтобы сэкономить ваше время, я скажу всего два слова: comss DNS.

Все остальные - велком под кат :-)

Читать далее

Что такое Lua: почему стоит его попробовать и как встроить в программу на Go

Level of difficultyEasy
Reading time3 min
Views8.4K

Lua — это лёгкий, быстрый и гибкий скриптовый язык, который появился в 1993 году. Он написан на C и чаще всего используется не как самостоятельный язык, а как встраиваемый инструмент для других приложений.

Если вы играли в World of Warcraft и устанавливали аддоны, вы уже сталкивались с Lua. Redis исполняет Lua-скрипты внутри себя. Lua используется в Nginx через модуль ngx_http_lua_module, который позволяет писать обработчики HTTP-запросов. В NeoVim плагины тоже можно писать на Lua. Короче говоря — язык не из популярных топов, но крайне полезен и встраиваем во многие инфраструктурные решения.

Я опишу главные особенности языка и приведу небольшой пример использования из Go.

Читать далее

Разработка DHCP-сервера на Python

Level of difficultyEasy
Reading time14 min
Views6.6K

Привет, Хабр!

Сегодня мы рассмотрим, как создать собственный DHCP‑сервер на Python. Суть сервера проста — он динамически раздаёт IP‑адреса устройствам в сети, избавляя нас от головной боли статической конфигурации.

Суть сервера будет заключаться в том, чтобы «подставлять» IP‑адреса устройствам, заходящим в сеть. Сервер будет ловить DHCP‑запросы от клиентов, выбирать свободный IP из заранее подготовленного пула и подтверждать выдачу.

Читать далее

14 интересных фич Python (возможно, не совсем pythonic)

Level of difficultyMedium
Reading time21 min
Views23K

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

Если загуглить лучшие 10 продвинутых хитростей Python, то вы найдёте кучу постов или статей на LinkedIn с обзором тривиальных (но всё же полезных) вещей типа генераторов или кортежей.

Я пишу на Python уже двенадцать лет, и за это время нашёл кучу очень интересных, недооценённых, уникальных или (как может кто-то сказать) «не-pythonic» хитростей, позволяющих по-настоящему расширить границы возможного для Python.

Именно поэтому я решил собрать список из 14 лучших таких фич с примерами и дополнительными ресурсами на случай, если вы захотите изучить их глубже.
Читать дальше →

Звезда Пшибыльского: что в ней происходит?

Reading time10 min
Views6.3K

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

Один из таких комментариев оставил уважаемый @3epka к статье о поисках «острова стабильности» в глубинах таблицы Менделеева, высказавшись об астероиде Полигимния. А буквально вчера вечером я обнаружил ещё более резкий комментарий уважаемого @Panzerschrek с закономерным вопросом о том, существуют ли какие-либо естественные процессы, приводящие к возникновению элементов из Острова Стабильности. Я тоже задумывался о такой проблеме. Наука, растущая из сократовской майевтики и аристотелевского научного метода, основывается не только на опыте и наблюдении, но и на тщательном сравнении образцов с эталоном. Если же образец не вписывается в выборку, либо эталон нельзя смоделировать в лаборатории, то наука начинает пробуксовывать, чем то и дело не преминут воспользоваться уфологи, астрологи и креационисты.

Читать далее

Что такое Ansible и как применяется в DWH-проектах? Сравнение Ansible с Puppet, Chef, SaltStack

Reading time11 min
Views6.6K

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

Сравниваем Ansible с другими инструментами для автоматизации управления инфраструктурой: Puppet, Chef, SaltStack.

Читать далее

go:linkname в Go

Level of difficultyEasy
Reading time4 min
Views2.6K

Привет, Хабр!

В этой статье рассмотрим //go:linkname — неофициальной, но невероятно мощной фиче Go, которая позволяет вызывать приватные функции и обращаться к закрытым переменным других пакетов.

Читать далее

Оптимизация Go map{-}{-}

Level of difficultyMedium
Reading time3 min
Views2.5K

Хеш-таблица(мапа) — одна из самых популярных структур данных, потому что поиск по ключу происходит за O(1). Причем ключ может быть любым любым типом, элементы которого можно сравнивать (Comparable Trait).

Я столкнулся с тем, что мапа не такая быстрая по бенчмаркам на языке GO, хотя теоретическая сложность алгоритма О(1).

Давайте рассмотрим следующую задачу и способы ее решения.

Читать далее

Состав TLS-сертификата на примере «шестидневного» варианта от Let's Encrypt

Level of difficultyMedium
Reading time10 min
Views2.7K

Посмотрим, как устроен современный TLS-сертификат со "сверхкоротким" сроком действия. В статье описано значение основных полей и ряд неочевидных особенностей, с этими полями связанных - формат серийного номера, SCT-метки и другие занимательные элементы.

Читать далее

Bash-скрипты, часть 6: функции и разработка библиотек

Reading time9 min
Views289K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Занимаясь разработкой bash-скриптов, вы рано или поздно столкнётесь с тем, что вам периодически приходится использовать одни и те же фрагменты кода. Постоянно набирать их вручную скучно, а копирование и вставка — не наш метод. Как быть? Хорошо бы найти средство, которое позволяет один раз написать блок кода и, когда он понадобится снова, просто сослаться на него в скрипте.



Оболочка bash предоставляет такую возможность, позволяя создавать функции. Функции bash — это именованные блоки кода, которые можно повторно использовать в скриптах.
Читать дальше →

Используем Xray как VPN

Level of difficultyEasy
Reading time5 min
Views65K

Так как я любитель selfhosted, у меня есть домашняя инфраструктура:

Orange Pi - медиасервер;

Synology - файлопомойка;

Neptune 4 - 3д принтер с веб интерфейсом и видео с камеры. И хотелось бы иметь безопасный доступ к ней снаружи через телефон и ПК, но при этом иметь выход в интернет не в РФ. Раньше для этих нужд я использовал OpenVPN, но теперь на него полагаться не стоит. Поэтому я начал изучать документацию к отличному инструменты от китайских товарищей - Xray!

Что понадобится:

Сервер с внешним IP с инфраструктурой. У меня - Orange Pi, далее - Bridge

Сервер, к которому хотим получить доступ - Server

Сервер вне РФ для выхода в интернет. Далее - Proxy

Клиент на ваш вкус. Далее - Client

Клиент и сервер на Linux - Xray-core, который можно поставить через оффициальный скрипт установки Xray

Клиент на андроид - v2rayNG

Еще клиенты можно найти в репозитории Xray-core

За базу берем файл конфигурации VLESS-TCP-XTLS-Vision-REALITY и начинаем читать документацию к Xray

Маршрутизация происходит на клиенте. Если клиент обращается к домену xray.com, например, то направляем траффик в Bridge, а для всех остальных соединений - в Proxy. Затем Bridge направляет траффик к Server, если клиент обращался к server.xray.com.
Выглядит так:

Читать далее

Поддержка AmneziaWG в Wiresock Secure Connect: маскировка WireGuard-трафика или избыточность?

Level of difficultyMedium
Reading time5 min
Views7.8K

В каком-то смысле эта статья является продолжением цикла материалов о реализации WireGuard-клиента на базе Cloudflare BoringTun и пользовательского пакетного фильтра на Windows. В этой статье мне еще раз хотелось бы поговорить о блокировках WireGuard-протокола и имеющихся возможностях по противодействию этим ограничениям. Одним из таких решений является AmneziaWG — надстройка над WireGuard, созданная в рамках проекта Amnezia VPN. В этом материале мы подробно разберём её особенности, подход к реализации и практическую применимость.

Читать далее

lazyjournal — ленивый интерфейс для поиска и анализа логов

Level of difficultyEasy
Reading time7 min
Views4.8K

Ранее, я уже писал статью о различных способах, которые мне приходилось использовать для чтения логов, и к какому решению в итоге пришел. Хотя прошло не так много времени, с тех пор приложение не переставало развиваться. Узнав о том, что на Хабре проходит сезон Open source, мне показалось это отличным поводом подчеркнуть, что именно стало причиной для создания данного инструмента, а также рассказать немного подробнее про основные и новые функции.

Читать далее

Сравнение Go и Python для веб-скрейпинга

Reading time9 min
Views7.1K

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

Покоряем сетевой стек Linux: декапсулируем пакеты с помощью eBPF на скорости 6Mpps+

Reading time15 min
Views14K

Когда переход на VXLAN в облачных сетях грозил нарушить работу системы анализа трафика, нам нужно было найти решение, позволяющее сохранить точный сбор статистики при экстремальных нагрузках и измененной структуре заголовков пакетов. Я — Александр Шишебаров, старший разработчик в команде сетевых функций облака Selectel. Разрабатываю все, что связано с сетью: балансировщики, виртуальные роутеры, сети, глобальный роутер и так далее.

В этой статье рассказываю о том, как мы использовали eBPF для перехвата и декапсуляции VXLAN-пакетов прямо в ядре, обеспечив корректный сбор статистики без значительных изменений в архитектуре системы. Разберем, какие требования привели нас к этому решению, как его внедряли и каких результатов удалось достичь. Также расскажу, что такое eBPF, как работает технология, как начать с ней работать и на каких этапах сетевого стека Linux можно перехватывать пакеты с ее помощью. Подробности под катом!
Читать дальше →

Information

Rating
5,830-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity