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

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

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

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

Почему удалённый файл доступен через дескриптор

Что происходит с файлом после unlink, пока процесс удерживает открытый файловый дескриптор. Bash-пример с exec 3, rm и read демонстрирует, почему имя исчезает из каталога раньше, чем содержимое перестаёт быть доступным.

Фото: Kindel Media / Pexels

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

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

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

ИТ-юмор

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

Цитатник

Все цитаты →

Loky-Ершастый: да, да, детка, я набираю слепым методом. Loky-Ершастый: ты думал, что я утомлюсь отвечать на твои вопросы? Loky-Ершастый: мои пальцы порхают по клавиатуре, как бабочки на весеннем лугу Loky-Ершастый: а ты тыкаешься двумя пальчиками и нервничаешь Ершастый-Loky: умри-умри-умри!!!!111 Ершастый has left the chat.

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

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

Почему удалённый файл доступен через дескриптор

Что происходит с файлом после unlink, пока процесс удерживает открытый файловый дескриптор. Bash-пример с exec 3, rm и read демонстрирует, почему имя исчезает из каталога раньше, чем содержимое перестаёт быть доступным.

Фото: Kindel Media / Pexels
bash

Почему нельзя перезаписывать файл через sed и редирект

Команда cat file | sed ... > file обнуляет исходный файл до начала чтения. Показываем опасный пример, результат и замену через временный файл с последующим mv, а также альтернативный вариант с ed.

Фото: Mikhail Nilov / Pexels

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

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

Почему задачи в Slack теряются без таск-трекера

Личный опыт постановки задач через сообщения в Slack: как срочные поручения теряются среди переписки и почему контекст пропадает. Автор объясняет, зачем руководителю ставить задачи в Jira или другой таск-трекер.

Фото: Jakub Zerdzicki / Pexels
devops

Как добавить готовый проект в пустой GitLab-репозиторий

Два способа перенести существующий локальный проект в пустой репозиторий GitLab: клонирование и перенос файлов либо настройка Git прямо в каталоге проекта. Команды git init, git remote и git push, а также типичные ошибки при …

Фото: cottonbro studio / Pexels
devops

Как не выставить порты Docker наружу

Привязка опубликованных портов Docker Compose к 127.0.0.1 закрывает прямой доступ к контейнеру извне, но оставляет его доступным для локального Nginx. Разбираем безопасный ports binding на примере Gitea и альтернативу с Traefik.

Фото: Ann H / Pexels

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

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

Как настроить SSH-доступ по ключам и отключить пароли

Настройка sshd для входа по ключам вместо пароля: PubkeyAuthentication, PasswordAuthentication и PermitRootLogin. Как проверить дополнительные конфиги, выполнить sshd -t и не потерять доступ к серверу при перезагрузке службы.

Фото: Infinity Shutter / Pexels

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

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

Почему нельзя перезаписывать файл через sed и редирект

Команда cat file | sed ... > file обнуляет исходный файл до начала чтения. Показываем опасный пример, результат и замену через временный файл с последующим mv, а также альтернативный вариант с ed.

Фото: Mikhail Nilov / Pexels
dev

Почему не стоит вылизывать код до идеала

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

Фото: Roxanne Minnish / Pexels

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

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

Почему не стоит вылизывать код до идеала

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

Фото: Roxanne Minnish / Pexels
workflow

Почему задачи в Slack теряются без таск-трекера

Личный опыт постановки задач через сообщения в Slack: как срочные поручения теряются среди переписки и почему контекст пропадает. Автор объясняет, зачем руководителю ставить задачи в Jira или другой таск-трекер.

Фото: Jakub Zerdzicki / Pexels
devops

Как добавить готовый проект в пустой GitLab-репозиторий

Два способа перенести существующий локальный проект в пустой репозиторий GitLab: клонирование и перенос файлов либо настройка Git прямо в каталоге проекта. Команды git init, git remote и git push, а также типичные ошибки при …

Фото: cottonbro studio / Pexels

Инструменты

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

Как отменить override через systemctl revert

Как вернуть systemd-юнит к версии из пакета после локальных изменений и нескольких drop-in-файлов. На примере nginx разберём, что удаляет systemctl revert и где лежит конфигурация, к которой вернётся служба.

Фото: Ellie Burgin / Pexels
linux

Как открыть файл на нужной строке

Команды mcedit, less, nano и vim умеют сразу переходить к нужной строке файла. Собираем тестовый файл и сравниваем синтаксис запуска четырёх консольных редакторов и просмотрщиков.

Фото: Daniil Komov / Pexels

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

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

Старые процессоры для бюджетных сборок

Большой FAQ по старым платформам Intel от LGA 775 до LGA 1151v2 с практичными вариантами Core и Xeon. Материал помогает подобрать процессор для бюджетного ПК, домашнего NAS, медиасервера или недорогого гипервизора.

Фото: Andrey Matveev / Pexels
bash

Как собрать все логи в один поток

Простой Bash-скрипт объединяет обычные и сжатые логи в правильном порядке и выводит их в stdout. Разбираем выбор между cat и zcat, сортировку файлов и дальнейшую обработку через grep, awk или sed.

Фото: Rafael Minguet Delgado / Pexels

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

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