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

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

Пишем под *nix

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

Привет, Хабр!
Сегодня рассмотрим консольные утилиты PipeWire: pw-cli, pw-top, pw-metadata и сопутствующие инструменты.
Для начала напомню, что PipeWire — это мультимедийный сервер низкого уровня, способный обрабатывать и аудио, и видео-потоки с минимальной задержкой. Он заменяет и PulseAudio, и JACK, действуя как ядро мультимедиа-пайплайна. Механизм распределения потоков (routing) отделён от политики: PipeWire занимается неким «трубопроводом», а где соединять и какой девайс использовать — за WirePlumber или другим менеджером сессий.
Некоторые языки программирования (например, Go и Zig) позволяют собрать приложение без каких-либо зависимостей, в том числе отвязаться от libc, тем самым создание distroless-контейнера на Go становится тривиальной задачей. Но эта же особенность может быть применена не только для создания контейнера, но и для запуска такого приложения в VM или на реальном хосте не используя какой-либо дистрибутив Linux, а используя только ядро Linux и само приложение, построенное с помощью Go (или, например, Zig). Такая возможность позволяет избавиться от дополнительных зависимостей, которые добавляют потенциальные риски с точки зрения атаки на цепочку поставок (supply chain attack).
tc netem — инструмент Linux для эмуляции сетевых проблем. Кратко расскажу зачем он нужен, а также примеры использования.
Как и у любого пользователя Андроид у меня есть аккаунт в Гугле.
А значит, кроме всего прочего, есть аж целых 15 гигабайт облачного хранилища, где можно что‑то хранить, на случай всяких внезапных проблем с локальным оборудованием.
Традиционно, для этого используется либо приложение Google Drive, либо веб‑интерфейс. Но ни то, ни другое не очень‑то удобно на компьютере, особенно когда привык просто работать с произвольными файлами, которые куда‑нибудь копируются. И тем более — плохо подходит для автоматизации.
Второй возникающий вопрос — всё, что хранится не в вашем собственном облачном хранилище — в принципе доступно кому‑нибудь не вам. И хорошо, если ваши личные документы читает какой‑нибудь бот, для которого вы — всего лишь один из миллиардов анонимусов, хуже если информация утечет куда не надо и попадет кому не нужно.
Вот эти две проблемки попробуем решить.

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

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

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

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

Привет, Хабр! Меня зовут Сергей, я DevOps-инженер в компании Webest. В работе ежедневно сталкиваюсь с задачами мониторинга и анализа логов, и знаю, как иногда трудно разобраться в причине, почему лег прод в 5:21 утра.
Здесь на помощь приходит Zabbix. Он как верный пес: всегда громко «лает», когда что-то идет не так, и даже может «принести» алерт прямо к тебе с тапочками. Но на этом история не заканчивается. Если нужно понять, что именно сломалось и по какой причине, приходится копать глубже — в мир логов, где живет ELK Stack.
В статье хочу поделиться опытом для чего программы нужны, как дополняют друг друга, каким образом их можно связать и нужно ли.

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

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

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

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

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

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

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