BashDays / инженерное медиа

Linux и DevOps на практике — медиа для IT-инженеров

Статьи об администрировании Linux, инфраструктуре, информационной безопасности, автоматизации и разработке — с реальными примерами и без пересказа документации.

Mastodon
Загрузка живой ленты…
bash

Условный параметр platform для ARM64 в pipeline

Разбираем, как условно добавлять параметр --platform linux/arm64 в Docker-команду внутри pipeline. Сравниваем Bash-конструкцию [[ ]] и POSIX-совместимый вариант с [ ], чтобы один сценарий работал на разных архитектурах.

Свежие комментарии

Все обсуждения ↗

Загружаем свежие комментарии…

ИТ-юмор

Смотреть все →

Цитатник

Все цитаты →

xxx: Погода такая хорошая, пойдем гулять после работы? yyy: После работы лежать. ххх: Халк ломать, Миша лежать?

Linux и администрирование

Смотреть всё →
bash

Условный параметр platform для ARM64 в pipeline

Разбираем, как условно добавлять параметр --platform linux/arm64 в Docker-команду внутри pipeline. Сравниваем Bash-конструкцию [[ ]] и POSIX-совместимый вариант с [ ], чтобы один сценарий работал на разных архитектурах.

bash

Уникальные строки в Bash без сортировки

Сравниваем три способа получить уникальные строки файла: sort с uniq, ассоциативный массив в awk и чистый Bash. Готовый скрипт показывает одинаковый результат и напоминает о расходе памяти на больших файлах.

linux

Видео-фон и lolcat в терминале

Добавляем анимированный фон в Windows Terminal и раскрашиваем вывод команд с помощью lolcat. В материале есть параметры backgroundImage для WSL, набор пиксельных GIF и пример случайной смены фона в Terminology через Fish.

DevOps и инфраструктура

Смотреть всё →
bash

Условный параметр platform для ARM64 в pipeline

Разбираем, как условно добавлять параметр --platform linux/arm64 в Docker-команду внутри pipeline. Сравниваем Bash-конструкцию [[ ]] и POSIX-совместимый вариант с [ ], чтобы один сценарий работал на разных архитектурах.

devops

Почему обновления GitLab превращаются в боль

Эмоциональный разбор эксплуатации self-hosted GitLab: частые обновления, ручные миграции, переход через промежуточные версии и риск поломки pipeline. Почему перед апдейтом приходится поднимать клон сервера и выбирать ночное окно …

devops

Очистка GitLab Container Registry

Настраиваем Cleanup Policies в GitLab Container Registry: расписание очистки, защищённые теги, регулярные выражения и возраст образов. Дополнительно рассматриваем удаление через UI, API, regclient, docker-gc и …

Безопасность

Смотреть всё →
linux

Как полностью заблокировать пользователя Linux

Почему usermod -L блокирует пароль, но не закрывает вход по SSH-ключу, а nologin иногда оставляет доступ через SFTP. Сравниваем /usr/sbin/nologin и /usr/bin/false для полной блокировки пользователя Linux.

linux

Как заменить last и lastb в Debian 13

В Debian 13 привычные команды last и lastb могут отсутствовать, но историю успешных и неудачных SSH-входов можно собрать через journalctl и gawk. Готовые команды формируют таблицу timestamp, IP и логина, поддерживают фильтр по …

bash

Как работает fork-бомба в Bash

Разбираем fork-бомбу на Bash: как рекурсивный запуск процессов приводит к отказу в обслуживании и почему используется конвейер. Показываем читаемую форму функции и ограничение числа процессов через ulimit и limits.conf.

Разработка и QA

Смотреть всё →
debug

Анализ ELF-бинарников с Binsider

Binsider — TUI-инструмент на Rust для статического и динамического анализа ELF-бинарников. Он показывает секции, сегменты, символы, релокации и hex-дамп, извлекает строки и отслеживает системные вызовы.

debug

Нумерация системных вызовов strace

Perl-скрипт автоматически нумерует системные вызовы в выводе strace и упрощает подготовку инъекций. Разбираем запуск через -o, цветовую подсветку, подсчёт openat и newfstatat и отделение трассировки stderr от вывода программы.

services

Интерактивная карта 400 тысяч GitHub-репозиториев

Map of GitHub превращает более 400 тысяч открытых репозиториев в интерактивную карту языков, технологий и фреймворков. Разбираемся, как устроены виртуальные страны Pythonia и Swiftoria, как генерировались их названия и зачем …

Карьера и айтишная жизнь

Смотреть всё →
devops

Почему обновления GitLab превращаются в боль

Эмоциональный разбор эксплуатации self-hosted GitLab: частые обновления, ручные миграции, переход через промежуточные версии и риск поломки pipeline. Почему перед апдейтом приходится поднимать клон сервера и выбирать ночное окно …

devops

Очистка GitLab Container Registry

Настраиваем Cleanup Policies в GitLab Container Registry: расписание очистки, защищённые теги, регулярные выражения и возраст образов. Дополнительно рассматриваем удаление через UI, API, regclient, docker-gc и …

devops

Одна SSH-сессия для deploy pipeline

Объединяем несколько команд деплоя в одну SSH-сессию внутри GitLab CI pipeline. Многострочный YAML-блок с heredoc снижает риск упереться в MaxSessions или Fail2ban и делает сценарий развёртывания читаемее.

Инструменты

Смотреть всё →
networks

Как проверить лимит DNS-запросов в SPF

SPF Surveyor показывает, сколько DNS-запросов требует почтовая SPF-запись и укладывается ли она в лимит 10 lookup. На реальном примере разбираем результат 36/10, удаление mx и a и проблему вложенных include.

linux

Видео-фон и lolcat в терминале

Добавляем анимированный фон в Windows Terminal и раскрашиваем вывод команд с помощью lolcat. В материале есть параметры backgroundImage для WSL, набор пиксельных GIF и пример случайной смены фона в Terminology через Fish.

services

Интерактивная карта 400 тысяч GitHub-репозиториев

Map of GitHub превращает более 400 тысяч открытых репозиториев в интерактивную карту языков, технологий и фреймворков. Разбираемся, как устроены виртуальные страны Pythonia и Swiftoria, как генерировались их названия и зачем …

Авторские колонки

Все материалы →
devops

Почему серверные диски надёжнее обычных

Сравниваем вероятность неисправимых ошибок чтения у WD Blue, WD Gold, SAS Toshiba и SSD Micron. Объясняем, почему RAID не всегда защищает от повреждённых данных и как контрольные суммы ZFS помогают обнаруживать ошибки.

bash

Почему самоучитель по Bash не получился в Markdown

Практический опыт подготовки большого самоучителя по Bash сначала в Markdown и Pandoc, а затем в LibreOffice. Разбираем ограничения таблиц, кириллицы, UTF-символов и PDF-вёрстки, которые стали заметны после девятнадцати глав.

workflow

Как я полностью отказался от алкоголя

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

Подборки редакции

Все подборки →