Linux и администрирование
Системное администрирование Linux, диагностика, утилиты, права, systemd, файловые системы и сеть.
Подборка для повседневной Linux-практики: команды, настройки, сервисы, диагностика и системные мелочи, которые экономят часы.
Termix бесплатный менеджер серверов. Обзор
Я потыкал Termix, бесплатный аналог Termius. И Termix выигрывает в открытости, поддержке SSH туннелей и возможности управлять файлами из браузера. Минусы – нестабильный VNC, странные анимации панели и наверное необходимость ручных патчей. Если твоя инфраструктура в основном состоит из Linux‑серверов, Termix может стать отличной заменой.
Почему лишние условия убивают читаемость в Bash
Мне за 30, я видел много скриптов с дьявольскими отрицаниями, и каждый раз хотелось задушить автора. Поэтому я решил написать пост, в котором покажу как превратить кошмарную конструкцию в простой if-else без единого лишнего знака. Ты узнаешь, почему отрицания усложняют чтение, и как делать проверки файлов и прав доступа так, чтобы они были интуитивно понятны. Это базовый навык, без которого ты будешь мучиться всю свою DevOps-карьеру.
Как перейти с Docker на Podman
Вместе с Романом Шубиным, СТО и автором канала Bash Days, собрали отдельный мини-курс по Podman. Внутри — восемь материалов, которые помогут освоить инструмент с открытым исходным кодом для работы с контейнерами.
Секрет ускорения Docker сборки
Дружище, если твой Dockerfile начинается с COPY и только потом npm install, то соболезную. Каждая твоя сборка переустанавливает зависимости заново, хотя они сто лет не менялись. Я сам так делал, пока не понял, что кеш Docker работает как тупой автомат, если слой изменился всё, пиши пропало.
Less и секретный режим мониторинга
Я пробовал разные инструменты, но только less позволил мне объединить просмотр и поиск в одном окне. Я могу прыгать по строкам, искать IP‑адреса и мгновенно возвращаться в режим слежения нажатием SHIFT+F. Это экономит кучу времени и делает работу с логами почти приятным развлечением. Если ты ищешь лёгкий способ улучшить наблюдение за логами, этот трюк спасёт тебя.
Тайна вызова Less в Linux утилитах
Знаешь этот бесконечный скролл в git log? Кто-то привык к пагинации, кто-то тупо шпарит grep. Я расскажу тебе как git управляет выводом истории коммитов через внешнюю утилиту less. И да, если её убить — простыня посыплется без остановки. Я даже strace подключил чтобы убедиться. А под конец вскрою тему переменной PAGER — ты можешь туда воткнуть что угодно, хоть vim, хоть lolcat. И это жирный вектор атаки, который пентестеры обожают.
Массовый SSH‑скан в своей Wi‑Fi сети
Как я поймал скрытый SSH трафик с Android и iPhone через opnSense. Люди до сих пор думают, что угрозы это когда хакер в худи ломает Пентагон. На деле твой смартфон сам бодро шатает чужие SSH порты пока ты листаешь мемы. Я проверил свою сеть и процент зараженных устройств оказался таким, что захотелось перекрестить роутер святой водой. Особенно весело владельцам дешевых маршрутизаторов. Там логов нет, контроля нет, зато есть сюрпризы и цифровой сифилис по DHCP.
S3 кластер на Garage, как прикрутить HAProxy
В прошлый раз я тебе показал как собрать S3 кластер из трех серверов на Garage. Теперь самое время накрутить ему балансировщик и SSL сертификат чтобы всё работало как часы даже если одна из нод ляжет спать. В этой части мы ставим HAProxy, прокидываем домен с lets encrypt и проверяем отказоустойчивость на живом примере. Никакой магии только конфиги и мат.
Свой S3 или пошаговая настройка Garage
Три рандомных сервака, композник и голый opensource — вот мой рецепт собственного S3 облачного хранилища. Garage не просит денег, реплицирует данные на все ноды и переживает падение любого сервера. Инструкция для тех, кто не боится консоли и хочет настоящей отказоустойчивости.
Awk для новичков. Как автоматизировать анализ логов
Я знаю, что сейчас все гонятся за JSON, и это удобно для новичков. Но когда речь заходит о реальной работе с большими логами, я всегда возвращаюсь к awk. Мой опыт показывает, что для быстрых фильтров и обработки огромных объемов данных awk часто обходит современные форматы. Я покажу, как использовать его мощь, когда другие инструменты начинают тормозить.
Как получить root на любом Linux сервере
Сегодня расскажу как пентестеры и черношляпы повышают привилегии на Linux машинах и получают root доступ. Без уязвимостей и эксплоитов.
Как бесплатно спрятать IP сервера и защититься от атак
Раньше с Cloudflare всё было просто, а теперь бесплатных вариантов почти нет. Я расскажу, как сам прячу IP сервера и защищаю приложения с помощью NetBird и Safeline.
15 функций Bash, которые стоит добавить в .bashrc
Если ты часто работаешь в командной строке, тебе точно пригодится подборка моих bash-функций для .bashrc. Они делают рутинные задачи намного удобнее и быстрее. Зацени и добавь себе.
Особенности использования sftp в Bash скриптах
Как автоматизировать sftp через скрипты. Объясню, почему key-based authentication это важно и как batch-mode помогает ловить ошибки.
Настройка Yubikey + WSL2 + SSH
Как подключить физический YubiKey к WSL2, чтобы использовать его для SSH без паролей и SMS. Разберёмся с проблемами прокидывания USB в WSL и сделаем автоматический скрипт, который решит баги с повторным подключением ключа.
Получаем SSL сертификат на IP адрес
Если не хочется связываться с доменами, но нужен SSL на IP — вот мой опыт и инструкция, как это сделать с помощью Let's Encrypt и acme.sh. Всё просто и понятно!
Как быстро скачать файл с сервера
Часто нужно быстро скачать файл с сервера, а настроить что-то сложное лень? Я расскажу, как с помощью одной команды Python поднять простой веб-сервер и скачать любой файл за пару секунд.
Как современный Docker упростил работу с compose файлами
Почему теперь можно использовать просто compose.yaml, а не привычный docker-compose.yaml. Всё стало проще, но если у тебя старая ОС — есть нюансы. Заодно обсудим, зачем вообще был нужен version в файле.
Стабилизация реверс-шелла — советы из практики
В пентесте реверс-шелл часто превращается в головную боль. Вот проверенный способ, который помогает быстро привести его в порядок и забыть про ошибки.
Капча под контролем или как нажать F24
Я придумал хитрую капчу и покажу как с помощью xdotool ее можно эффективно обойти. Роботы же начинают троить, кейс отлично подходит под нишевые проекты с защитой от дурака.
Терминальный браузер нового поколения
Если любишь терминал и хочешь попробовать что-то новое, Brow6el для тебя. Сборка не из пакетов, но есть скрипты. Браузер поддерживает графику, скрипты и все современные фишки.
Домашний почтовый сервер на домене
Недавно решил перенести почтовый сервер к себе домой, чтобы сэкономить пару тысяч в месяц. В статье — как настроить прокси с angie и обойти отсутствие белого IP.
Bind vs Volume в Docker
Если ты тоже путаешься, что лучше — bind или volume, этот пост для тебя. Покажу основные правила и примеры из жизни, чтобы ты не писал дичь и не ломал себе окружение.
Stop Using Pi-Hole – Technitium DNS Is Better
Если ты устал от сложных настроек DNS и хочешь кластер «из коробки», расскажу, как я быстро развернул Technitium DNS с минимальными усилиями.
Настройка Pi-Hole кластера
Быстро и просто о том, как заставить Pi-Hole ноды работать с одинаковыми настройками в синхронном режиме.
Хакнем Proxmox. Кластер из 2 нод без кворума
Обходим проблемы кворума в Proxmox. Забудьте о сбоях при потере одной ноды, кластер остаётся живым, а бэкапы проходят без ошибок. Простой способ сделать домашнюю лабораторию надёжной.
Как заставить ZSH автоматически перечитывать конфиг
Лень каждый раз вводить source ~/.zshrc? У меня тоже! Сделал автоперезагрузку конфига в ZSH с проверкой синтаксиса — делюсь, как это работает и что стоит учесть.
Помещаем процессы в «клетку» или cgroups для начинающих
Сегодня покажу, как ограничить жор ресурсов у своих скриптов. Если хочешь, чтобы сервер не превращался в печку — тебе сюда.
Прощай Helper scripts. Запускаем OCI в Proxmox 9.1
В этом разборе показываю, как в Proxmox 9.1 работает новая нативная поддержка OCI-образов. На примере nginx:latest скачиваем образ из Docker Hub, превращаем его в LXC-контейнер и запускаем без единой команды Docker. Разбираем, как входить в такой контейнер, где менять переменные окружения и как подключать хранилища.
Обновляем Proxmox 8 до Proxmox 9 (OCI)
Подробная инструкция по переходу на новую ветку Debian Trixie в Proxmox. Фиксим репы, обновляем ключи, прогоняем pve8to9 и устанавливаем всё, что предлагает система. Даю комментарии по каждому этапу, чтобы апдейт не превратился в ад.
Multipass простая и мощная виртуальная машина Ubuntu в один клик
Классный инструмент для быстрого запуска Ubuntu виртуалок. Забудь про бесконечные настройки и тормоза VirtualBox!
Options vs inputs в GitLab CI, что выбрать и как настроить
Выпадающие списки в Gitlab. Многие путаются с options и inputs в GitLab, поэтому делюсь своим опытом и простым решением, которое сработало у меня.
Load Average на пальцах
Пошаговый разбор Load Average с примерами и советами, чтобы ты всегда знал, когда пора бежать к серверу, а когда можно спокойно пить пиво.
Туалетная бумага по cron’у
Каждый месяц я забывал заказать туалетную бумагу, пока не написал Bash-скрипт, который делает это за меня. В этом посте расскажу, как с реверсом API и cron’ом автоматизировал рутину.
Как работать с Terraform на выделенных серверах
После того, как я выполнял terraform apply, где-то в дата-центре, специально обученный мальчик шёл ножками, читал мой yaml манифест, плакал, собирал руками железный сервер и передавал мне в работу. Сейчас этот процесс полностью автоматизирован, а мальчику больше не нужно плакать и читать мой yaml говнокод. На досуге я накидал для тебя техно-пост, как это работает. С командами, нюансами и картинками.
Управляем CPU affinity или как ограничить процессы нужными ядрами
Сегодня поделюсь лайфхаком, как заставить процессы не прыгать по всем ядрам, а работать там, где им удобнее.
Governors — как и зачем менять частоту процессора
Иногда хочется заставить процессор работать на полную, а иногда сберечь батарею. Расскажу, как это сделать с помощью governors и небольшого bash-скрипта.
Почему Docker возвращает неправильный Exit Code
Почему контейнер Docker «маскирует» код выхода приложения и как правильно настроить запуск, чтобы видеть настоящий exit code.
Запускаем Windows программы на Linux
WinBoat — маленькое чудо для тех, кто сидит на Linux, но не хочет отказываться от Windows. Это мой новый фаворит для запуска виндовых приложений в Linux без лишних заморочек. Делюсь впечатлениями.
Настройка core dump в Docker
Если приложение в Docker внезапно упало, этот пост поможет настроить сбор дампов и разбираться с ошибками.
Погружение в Linux ядро. Мой опыт с fanotify и eBPF
Иногда проще сделать chown -R, но я решил заморочиться и написать свой мониторинг на eBPF. Рассказываю, что из этого вышло и почему это стоило того.
Быстрый способ запускать задачи в cron с шагом 30 секунд
Если не хочется возиться с systemd timers, вот простой хак для запуска скриптов в cron каждые 30 секунд. Быстро и понятно!
Ищем узкие места в проде с помощью strace
Если продакшен тормозит, strace поможет найти виновника и быстро исправить ситуацию.
Визуальный сервис для разбора Bash/Shell команд
Рассмотрим сервис в виде веб-сервиса, который помогает понять, что делает та или иная shell-команда в Unix/Linux. Проще говоря, ты вставляешь команду, а оно разбирает её и объясняет фрагмент за фрагментом, что означает каждая часть.
Как сохранить правила iptables
Это вечная проблема, так как из коробки этот механизм реализован достаточно хуёва либо вообще не реализован. Но Linux на то и Linux, что его нужно допинать и сделать правильно.
Закончилось место на диске? Или же закончились inode?
Ситуация неприятная и чаще всего выходом служит удаление «ненужных» файлов. Рассмотрим ситуацию, когда все файлы нужны, то есть удалять ничего не будем.
Упоротые Bash/Shell однострочники
Посылаем PING всем redis'ам в кластере и собираем PONG в ответ.
TUI штука для замены тормозного Postman
Когда GUI не вариант, Posting — идеальный инструмент, минималистично, понятно, сессии сохраняются — рекомендую всем, кто любит чистый терминал.
Деградация батареи в Linux
Сегодня пакажу, как в Linux узнать степень деградации батареи и вынести этот показатель в аккуратный модуль Waybar.
Манипулируем логами с помощью systemd-cat
Как направить логи прямиком в journald без костылей и внешнего софта.
Не меняется 22 порт после замены в ssh_config
Разбираемся почему перестал меняться дефолтный ssh порт, залазием в кишочки и обнаруживаем интересное поведение.
Чем отличается fsck от fsck.ext3/ext4 и т.п.
Как работает команда fsck, нюансы и как её лучше запускать.
Как будет выглядеть администрирование в эпоху ИИ
Кухонные посиделки девопс-инженеров и размышления на тему - а что если делегировать всю работу специальной операционной системе с ядром на базе ИИ.
CRON в первый рабочий день месяца
Сегодня будет обучать cron понимать рабочие и выходные дни. Из коробки этот функционал не работает, да и systemd тут не особо поможет. Так что, придется изобретать очередную кишку.
Reexec VS Reload
Разбираемся с daemon-reload и daemon-reexec, в чем отличия и практическое применение.
Ставим SelectOS в облако
В этой статье я шаг за шагом показываю, как установить SelectOS «с нуля» — прямо из ISO-образа — в облаке Selectel. Рассказываю, с какими трудностями столкнулся (от нехватки памяти до проблем с сетью), и как их обошёл. Подойдёт тем, кто хочет развёрнуть ОС вручную, а не пользоваться «коробочными» решениями.
SelectOS в деле
Я решил попробовать поднять GitLab CE на SelectOS без всяких Docker’ов — в лоб, как есть. Завёл раннеры, погонял CI и нагрузку, SelectOS тащит!
Пробуем SelectOS
Проникаемся новой операционной системой SelectOS на базе Debian, тыкаем в реальных условиях, смотрим фишки и фичи. Пробуем установить базовый софт и провести нагрузочное тестирование.