Обновить
310.79

Linux *

Пишем под *nix

Сначала показывать
Порог рейтинга
Уровень сложности

snapd, 100% загрузка cpu и баг ядра

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.1K

Еще одна поучительная история из жизни с Linux, специально чтобы вы потеряли сон и покой, узнав что такое вообще возможно.

Читать далее

PipeWire с терминала: pw-cli, pw-top, pw-metadata

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.8K

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

Сегодня рассмотрим консольные утилиты PipeWire: pw-cli, pw-top, pw-metadata и сопутствующие инструменты.

Для начала напомню, что PipeWire — это мультимедийный сервер низкого уровня, способный обрабатывать и аудио, и видео-потоки с минимальной задержкой. Он заменяет и PulseAudio, и JACK, действуя как ядро мультимедиа-пайплайна. Механизм распределения потоков (routing) отделён от политики: PipeWire занимается неким «трубопроводом», а где соединять и какой девайс использовать — за WirePlumber или другим менеджером сессий.

Читать далее

Distroless приложения (VM/bare-metal)

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.9K

Некоторые языки программирования (например, Go и Zig) позволяют собрать приложение без каких-либо зависимостей, в том числе отвязаться от libc, тем самым создание distroless-контейнера на Go становится тривиальной задачей. Но эта же особенность может быть применена не только для создания контейнера, но и для запуска такого приложения в VM или на реальном хосте не используя какой-либо дистрибутив Linux, а используя только ядро Linux и само приложение, построенное с помощью Go (или, например, Zig). Такая возможность позволяет избавиться от дополнительных зависимостей, которые добавляют потенциальные риски с точки зрения атаки на цепочку поставок (supply chain attack).

Читать далее

Эмуляция сетевых проблем в Linux через tc netem

Время на прочтение4 мин
Количество просмотров4.4K

tc netem — инструмент Linux для эмуляции сетевых проблем. Кратко расскажу зачем он нужен, а также примеры использования.

Читать далее

Храним секреты в облаках

Время на прочтение6 мин
Количество просмотров2.5K

Как и у любого пользователя Андроид у меня есть аккаунт в Гугле.
А значит, кроме всего прочего, есть аж целых 15 гигабайт облачного хранилища, где можно что‑то хранить, на случай всяких внезапных проблем с локальным оборудованием.

Традиционно, для этого используется либо приложение Google Drive, либо веб‑интерфейс. Но ни то, ни другое не очень‑то удобно на компьютере, особенно когда привык просто работать с произвольными файлами, которые куда‑нибудь копируются. И тем более — плохо подходит для автоматизации.

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

Вот эти две проблемки попробуем решить.

Читать далее

Часть 2. Rsync — подробное руководство для админов

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров10K

Привет, Хабр! В первой части я разобрал основы rsync: синтаксис, ключевые опции и работу по SSH. Эти аспекты позволяют эффективно пользоваться утилитой на базовом уровне. В этой статье заглянем «под капот» и научимся тонко контролировать весь процесс синхронизации и диагностировать проблемы с производительностью...

Что в статье:

— Фильтрация;
— Экономичные бэкапы;
— Диагностика и решение проблем.

Читать далее

Процессорный модуль Corgi SoM v1 на базе Xilinx Zynq-7000

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров3.3K

Коллеги, приветствую, обзорная статья работы с Corgi SoM v1 на базе AMD (Xilinx) Zynq-7000. Статья охватывает работу модуля с Vivado IDE, Vitis IDE, подготовку базового образа, работу с Embedded Linux (u-boot, device tree, linux kernel, rootfs). Подготовку образа для SPI NOR памяти, SPI NAND памяти и сопутствующие моменты необходимые для старта работы с данным модулем. Дополнительно статья будет полезно для linux embedded разработчиков, которые делать будут bring-up плат на базе AMD(Xilinx) zynq платформ.

Читать далее

Как написать свой TCP-порт-сканер на Python: опыт, код и примеры использования

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.1K

В этой статье мы разберём, как написать свой многопоточный TCP-порт-сканер на Python. Несмотря на то, что существуют готовые инструменты вроде nmap или masscan, иногда требуется минималистичное решение: встроить проверку в CI/CD, автоматизировать аудит небольшой сети или использовать сканер как обучающий пример. Мы рассмотрим два подхода — на ThreadPoolExecutor и на asyncio, добавим баннер-граббинг, HTTP-проверку и TLS-детекцию. В результате получится компактный инструмент с поддержкой JSON/CSV-вывода, возможностью тонко настраивать параллелизм и таймауты, а также учитывать нагрузку на сеть. Такой сканер удобен для внутренних задач админа и для изучения сетевого программирования.

Читать далее

Часть 1. Rsync: подробное руководство для админов

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров22K

Привет, Хабр! В арсенале системного администратора и разработчика есть множество инструментов для переноса данных. Мы копируем файлы десятки раз в день: cp для локальных копий, scp для удалённых серверов. Но что если задача сложнее? Нужно не просто скопировать, а синхронизировать два дерева файлов, дёргая по сети лишь изменившиеся данные? Или поддерживать в актуальном состоянии зеркало веб‑контента?

О чём эта статья?
— Фундамент: как правильно путями в rsync и почему слеш в конце решает всё;
— Два основных режима работы: локально, с сервером;
— Разбор флага -a: что скрывается под капотом; — Главные опции: как сделать вывод подробным, а работу — безопасной; — Синхронизация поверх SSH: работа с нестандартными портами; — Самые опасные «грабли» и как их избежать.

Читать далее

Linux Open Port: пошаговое руководство по управлению портами фаервола

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров9.1K

Открытый порт — это не «дырка в фаерволе», а процесс, который слушает сокет. В материале разбираемся, где заканчивается приложение и начинается сетевой фильтр: как корректно отличать listening от доступности снаружи, чем проверять (ss, lsof, nmap), и как на практике управлять правилами в nftables, firewalld и UFW. Поговорим о well-known портах и CAP_NET_BIND_SERVICE, типовых политиках (allow/deny), логировании и безопасной последовательности действий, чтобы не уронить прод. Текст для системных администраторов и DevOps/SRE, которым нужна понятная и проверяемая методика без мифов и магии.

Читать далее

Подключаем SSL от Let's Encrypt

Время на прочтение5 мин
Количество просмотров11K

В недавней статье об SSL‑сертификатах, точнее, в комментариях к ней, затронули вопрос, который похоже создает для многих головную боль: как обновлять сертификаты от Let's Encrypt? Ведь сертификаты выдаются на 3 месяца, а потом их надо обновлять.

Конечно, есть Certbot, есть софт, который умеет сам получать и обновлять сертификаты — но вопрос возник именно по тому софту, который сам не умеет (а подключить Certbot почему‑то не получается)

Когда‑то у меня тоже возник такой вопрос, и почему‑то не устроил Certbot — не помню уже точную причину. Решил проблему иначе.

Читать далее

Как улучшить мониторинг и не потерять логи: Zabbix + ELK

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.5K

Привет, Хабр! Меня зовут Сергей, я DevOps-инженер в компании Webest. В работе ежедневно сталкиваюсь с задачами мониторинга и анализа логов, и знаю, как иногда трудно разобраться в причине, почему лег прод в 5:21 утра.

Здесь на помощь приходит Zabbix. Он как верный пес: всегда громко «лает», когда что-то идет не так, и даже может «принести» алерт прямо к тебе с тапочками. Но на этом история не заканчивается. Если нужно понять, что именно сломалось и по какой причине, приходится копать глубже — в мир логов, где живет ELK Stack.

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

Читать далее

Pop!_OS: Мой опыт перехода с Windows на Linux

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров15K

Я пользуюсь компьютерами с эпохи Windows 95 и всегда искал баланс между удобством, свободой и стабильностью. Мой выбор — лицензионное или бесплатное программное обеспечение. За годы я перепробовал множество операционных систем: от Windows до различных дистрибутивов Linux. В этой статье я расскажу, почему после долгих экспериментов я остановился на Pop!_OS от System76, какие у него плюсы и минусы, и как я адаптировал его под себя.

Читать далее

Ближайшие события

BPF CPU Scheduler: не нравится стандартный планировщик в Linux? Напиши свой

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.9K

Всем привет! В статье расскажу про относительно новую возможность написания собственных CPU планировщиков для Linux с помощью BPF. Разберёмся, для чего это нужно, как работает, а также посмотрим на примеры уже написанных планировщиков.

Читать далее

Новости кибербезопасности за неделю с 8 по 14 сентября 2025

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.7K

Всё самое интересное из мира кибербезопасности /** с моими комментариями.

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

Читать далее

Механизм запуска процесса в Linux

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров15K

В этой статье я расскажу о том, что происходит внутри ядра Linux, когда процесс вызывает execve(), как ядро подготавливает стек и как затем передаёт управление пользовательскому процессу для выполнения.

Изучил я этот механизм, когда разрабатывал Zapper — инструмент Linux, удаляющий все параметры командной строки из любого процесса без прав root.

Читать далее

Модернизация древнего драйвера Linux с помощью Claude Code

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров11K

В качестве одного из своих увлечений я помогаю людям восстанавливать данные со старых ленточных кассет, например QIC-80, которые в 90-е годы часто применялись для резервного копирования. Ими пользовались отдельные люди, компании, операторы досок объявлений и не только. К ленточным кассетам я испытываю очень тёплые чувства. Есть нечто особое в том тактильном ощущении, которое возникает, когда держишь эту кассету в руках. Нечто такое, что делает сам процесс её использования приятным несмотря на все огрехи дизайна, которыми славилась технология QIC. Причём, если вникнуть в процесс и воссоздать все необходимые условия, то данные на этих лентах, даже спустя столько времени, вполне можно восстановить.

Читать далее

Напердолил целую игру

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров17K

Уууу, давно хотелось чего-то простого, смешного и без лишних заморочек. Чтобы мемов побольше и можно было с пацанами погонять. В итоге получились "TANKOLINI NAPIERDOLKI".

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

Читать далее

Linux умер. Да здравствует Linux

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров25K

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

Читать далее

Репликация базы Postgrespro на двух нодах

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.7K

В данной статье описывается пошаговая настройка отказоустойчивой репликации PostgresPro-12 на двух серверах в изолированной среде без внешнего доступа и возможности развертывания третьего узла. Решение ориентировано на AstraLinux, но легко адаптируется под другие дистрибутивы. В условиях, где стандартные решения вроде Patroni с etcd или ZooKeeper неприменимы из-за требования минимум трёх нод, предлагается альтернативный подход на базе keepalived и кастомных bash-скриптов.
Ключевой особенностью является использование keepalived не только для управления виртуальным IP-адресом (VIP), но и для автоматического переключения роли PostgreSQL между мастером и репликой при отказе основного сервера.

Читать далее

Вклад авторов