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

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

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

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

Отправка сообщений и файлов через MAX Bot API

Практический Bash-скрипт для отправки текстовых сообщений и файлов пользователю или в групповой чат через MAX Bot API. Разбираем параметры запуска, загрузку вложений, формирование JSON через jq и антифлуд-задержку.

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

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

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

ИТ-юмор

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

Цитатник

Все цитаты →

Чем плоха работа на улице. Вот занимаешься ты своим делом, никого не трогаешь, делаешь замеры, расчёты, и именно в тот момент, когда тебе нужно быть максимально сосредоточенным, сзади обязательно встанет какой-то говнюк и будет пялиться, как ты работаешь. И если бы всё этим и закончилось, то можно было бы не обращать на него внимания, но.. Через пару минут, видимо осознав, что его присутствие недостаточно раздражительно, он достаёт сигарету, ту самую, которую он, наверно, хранил лет сорок, специально для такого момента. Какую-нибудь приму, без фильтра, разумеется, и начинает выпускать в твою сторону едчайший дым, сопровождая его кашлем, в котором без труда узнается хроническая болезнь лёгких. Пока он курит, его, совершенно пустая черепная коробка, заполняется непреодолимым желанием "поболтать", и он задаёт вопрос, от которого сам Капитан Очевидность впадает в отчаяние: "Работаете? Ммм... понятно". Но это только начало. Ведь за пять минут этот персонаж познал дзэн и стал экспертом в том, что ты делаешь. Он начинает давать советы... И вроде хочется высказаться, уже и слова подобраны подходящие, но нет, ты же интеллигент, и приходится отмахиваться сухими, безвкусными фразами, лишь бы только отстал. Наверно, я чего-то не знаю в жизни. Наверно, где-то есть школа мудаков, где специально обучают таких... экземпляров. Потому что иного объяснения данному феномену попросту нет.

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

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

Чем BSD в OPNsense отличается от Linux

Личный опыт переноса shell-скрипта с Linux на OPNsense и BSD. Разбираем различия csh и sh, перенос строк, особенности date и awk, отсутствие /dev/shm и набор консольных редакторов.

linux

Как файловый менеджер определяет тип файла

Проверяем через strace, как Nautilus определяет тип файла по расширению или содержимому. Создаём файл с сигнатурой BZ2, наблюдаем системные вызовы openat и read, а затем сравниваем поведение после добавления расширения txt.

bash

Как управлять переменными окружения через direnv

Настраиваем direnv для автоматической загрузки и выгрузки переменных окружения при переходе между каталогами проектов. Устанавливаем hook для Bash, разрешаем .envrc и проверяем изоляцию переменной FOO на практике.

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

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

Чем BSD в OPNsense отличается от Linux

Личный опыт переноса shell-скрипта с Linux на OPNsense и BSD. Разбираем различия csh и sh, перенос строк, особенности date и awk, отсутствие /dev/shm и набор консольных редакторов.

devops

Почему proxy_pass в Nginx ломает путь к Flask

Разбираем, почему Flask возвращает Not Found при проксировании приложения через location /app в Nginx. На конкретной конфигурации показываем, как завершающий слэш в proxy_pass меняет путь запроса и устраняет ошибку маршрутизации.

devops

Какие команды Git нужны DevOps-инженеру

Практический минимум Git для DevOps-инженера без погружения в редкие команды и сложную теорию. Разбираем clone, pull, commit, push, checkout, ветки и типичный рабочий процесс с GitLab или GitHub.

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

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

Как поднять SOCKS-прокси через SSH

Настраиваем личный SOCKS5-прокси через SSH без доступа пользователя к shell и SFTP. Ограничиваем аккаунт в sshd_config, запускаем динамический проброс порта и подключаем Firefox с передачей DNS-запросов через прокси.

linux

doas как минималистичная альтернатива sudo

Знакомимся с doas из OpenBSD как более простой альтернативой sudo. Разбираем установку, правила permit и nopass, доступ для пользователей и групп, а также запуск root shell.

security

Как полностью отключить логирование в Linux

Экспериментируем с отключением системных журналов Linux, journald, rsyslog и истории Bash. Материал показывает, где остаются логи, какие побочные эффекты возникают и почему эти приёмы допустимы только в учебной среде.

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

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

Отправка сообщений и файлов через MAX Bot API

Практический Bash-скрипт для отправки текстовых сообщений и файлов пользователю или в групповой чат через MAX Bot API. Разбираем параметры запуска, загрузку вложений, формирование JSON через jq и антифлуд-задержку.

devops

Почему proxy_pass в Nginx ломает путь к Flask

Разбираем, почему Flask возвращает Not Found при проксировании приложения через location /app в Nginx. На конкретной конфигурации показываем, как завершающий слэш в proxy_pass меняет путь запроса и устраняет ошибку маршрутизации.

linux

Как файловый менеджер определяет тип файла

Проверяем через strace, как Nautilus определяет тип файла по расширению или содержимому. Создаём файл с сигнатурой BZ2, наблюдаем системные вызовы openat и read, а затем сравниваем поведение после добавления расширения txt.

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

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

Какие команды Git нужны DevOps-инженеру

Практический минимум Git для DevOps-инженера без погружения в редкие команды и сложную теорию. Разбираем clone, pull, commit, push, checkout, ветки и типичный рабочий процесс с GitLab или GitHub.

bash

Как управлять переменными окружения через direnv

Настраиваем direnv для автоматической загрузки и выгрузки переменных окружения при переходе между каталогами проектов. Устанавливаем hook для Bash, разрешаем .envrc и проверяем изоляцию переменной FOO на практике.

soft

Как перейти с VS Code на Vim

Личный взгляд на переход с VS Code на Vim без толстых книг и бесконечных тренажёров. Почему реальная работа, возникающие вопросы и постепенная настройка редактора дают больше, чем изучение Vim в отрыве от практики.

Инструменты

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

Как перейти с VS Code на Vim

Личный взгляд на переход с VS Code на Vim без толстых книг и бесконечных тренажёров. Почему реальная работа, возникающие вопросы и постепенная настройка редактора дают больше, чем изучение Vim в отрыве от практики.

soft

Taskwarrior для задач прямо в терминале

Знакомимся с консольным таск-трекером Taskwarrior и собираем минимальную систему личных задач без тяжёлого интерфейса. Добавляем и закрываем задачи, делим их на домашний и рабочий проекты, создаём алиасы и намечаем синхронизацию …

soft

Vim с педалью для переключения режимов

Проект Vim Clutch превращает ножную педаль в переключатель между режимом вставки и обычным режимом Vim. Смотрим на необычный способ освободить руки и ускорить работу в редакторе.

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

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

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

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

bash

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

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

workflow

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

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

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

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