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

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

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

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

Почему mv удаляет файлы при переименовании

Разбираем Bash-скрипт, который при массовом переименовании незаметно теряет половину файлов. На тестовом наборе показываем поведение mv при совпадении имён и используем опцию -b для резервных копий.

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

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

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

ИТ-юмор

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

Цитатник

Все цитаты →

Новость: Sony хочет прерывать игры рекламой. Sony предлагает предупреждать геймера о том, что сейчас будет показан ролик, после чего игра ставится на паузу и пользователь смотрит рекламный материал. Комментарии 1. Уж лучше пусть когда руководитель SONY пойдёт в туалет, у него появится табличка "потерпите немного", а потом появится "если вы не удержали в себе, можете поменять бельё". 2. Плюс еще ввести ему абонентскую плату за пользование сортиром (типа синглплеерные игры с абонентской платой). Пускать в сортир только по удостоверению личности (обязательная он-лайн регистрация, ага). Не пускать в чужие и общественные туалеты ни под каким предлогом (DRM). И туалетную бумагу выдавать только ма-аленькими частями, и за доп. плату (DLC).

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

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

Почему mv удаляет файлы при переименовании

Разбираем Bash-скрипт, который при массовом переименовании незаметно теряет половину файлов. На тестовом наборе показываем поведение mv при совпадении имён и используем опцию -b для резервных копий.

debug

Почему chmod 777 в PHP превращается в 01411

Разбираем странные права 01411 после вызова chmod в PHP и доказываем источник ошибки через strace. На примерах показываем разницу между десятичным 777, строкой и корректным восьмеричным значением 0777.

bash

Конфиг-агент на Bash для восстановления Nginx

Собираем минимальный конфиг-агент на Bash, который синхронизирует эталонные настройки Nginx из Git. Скрипт с cron, rsync и systemctl автоматически восстанавливает конфиги и перезагружает сервис только при изменениях.

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

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

Конфиг-агент на Bash для восстановления Nginx

Собираем минимальный конфиг-агент на Bash, который синхронизирует эталонные настройки Nginx из Git. Скрипт с cron, rsync и systemctl автоматически восстанавливает конфиги и перезагружает сервис только при изменениях.

devops

Как масштабировать GitLab Runner без вреда продакшену

Практическая схема размещения GitLab Runner на отдельных серверах без лишней нагрузки на продакшен. Разбираем общие теги, балансировку заданий, регистрацию нескольких раннеров и деплой по SSH.

linux

Timer path и socket три скрытых юнита systemd

Три практических механизма systemd для задач по расписанию, наблюдения за файлами и запуска сервисов по подключению. Примеры юнитов timer, path и socket помогают заменить cron, inotify-tools и постоянно работающие службы.

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

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

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

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

security

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

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

linux

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

Пошагово настраиваем вход на Linux-сервер по SSH-ключу: генерируем пару RSA, восстанавливаем публичную часть, копируем её через ssh-copy-id и выставляем права на authorized_keys. Также разбираем подключение под разными …

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

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

Почему chmod 777 в PHP превращается в 01411

Разбираем странные права 01411 после вызова chmod в PHP и доказываем источник ошибки через strace. На примерах показываем разницу между десятичным 777, строкой и корректным восьмеричным значением 0777.

linux

Как перехватить удаление временного файла через strace

Практический разбор отладки неизвестного бинарника через strace и инъекцию ошибки EACCES. Показываем, как остановить unlink, сохранить временный файл и найти гонку, из-за которой выгрузка становилась пустой.

linux

Как установить Ubuntu 23 или 24 в WSL

Показываем три способа установить свежую Ubuntu в WSL: импортировать rootfs из Docker, выполнить dist-upgrade или поставить Ubuntu Preview. Внутри — команды экспорта контейнера, импорта tar-архива и проверки дистрибутивов.

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

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

Как разгрузить голову с помощью листа бумаги

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

workflow

Почему годовые премии демотивируют сотрудников

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

devops

Как проверить DevOps-инженера аварией на тестовом продакшене

Разбираем жёсткий способ проверить DevOps- или SRE-инженера в условиях контролируемой аварии. Фейковый продакшен, мониторинг, документация и разбор инцидента показывают, как кандидат действует под давлением.

Инструменты

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

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

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

soft

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

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

soft

tig показывает историю Git в терминале

Консольный интерфейс tig помогает просматривать историю Git, состояние репозитория, изменения отдельных блоков и результаты поиска. Утилита устанавливается одной командой и дополняет нативные команды Git.

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

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

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

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

bash

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

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

workflow

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

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

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

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