Bash Days | Linux | DevOps
23.7K subscribers
225 photos
26 videos
776 links
Авторский блог от действующего девопса

Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.

Автор: Роман Шубин
Реклама: @maxgrue

MAX: https://max.ru/bashdays

Курс: @tormozilla_bot
Блог: https://bashdays.ru
Download Telegram
Безопасность Docker контейнеров

Я тут написал огромный пост про безопасность Docker контейнеров.

Разобрал, как нормально прикручивать security_opt, cap_drop, read_only, pids_limit, лимиты CPU/RAM, запуск не от root, seccomp, network_mode и почему privileged:true это не «чтобы заработало», а потенциальная дыра в жопе.

Без абстрактной душнины, зато с примерами, командами для проверки и объяснением, что именно ломается или защищается каждым параметром.

Если работаешь с Docker или хотя бы иногда пишешь композники, рекомендую почитать и ознакомиться. Там дохуя моментов, после которых захочется пойти и проверить свои контейнеры. Ну или по крайней мере будет запал на будущее, чтобы сделать всё в лучших практиках.

Читать тута: https://two.su/vnelv

🛠 #devops #security

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
266
Сколько стоит фреймворк автоматизации

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

Максим Братковский вещает, как с нуля собирал платформу автоматизации для десятилетнего Java-легаси: SOAP, REST, лицензии, конфиги, SNMP, SFTP, JMX и прочие радости, после которых ручной регресс длиной в пять недель начинает казаться котлом в аду.

В первой части будет много жабьего кунг-фу: CXF, JAX-WS, JAXB, Allure, генерация XML, параметризованные тесты и разбор граблей, которые пришлось собрать по дороге. По итогу из коллекции на 130 запросов выросла платформа с 2700 тестами, а пять недель ручного регресса превратились примерно в 30 минут автоматического прогона. Кайфушка!


Но это только половина истории. Вторую часть выкладываю сразу следом — там уже Docker, базы данных и дальнейшее развитие всей этой шайтан-машины.

Короче, материала получилось дофига, кода тоже дофига, практического опыта — ещё больше. Наливайте чай и погнали:

👉 Первая часть: https://two.su/yq61v

👉 Вторая часть: https://two.su/pjeqd

🛠 #qa #dev

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
25
Здрасти мои хорошие, заранее прошу прощение за рекламные интеграции, был в отпуске, сейчас дача началась, короче время хватает только на проверку домашек. Но вкусных тем я уже понабрал, черновиков накидал, так что потихоньку буду возвращаться в рабочий ритм и радовать тебя всякой полезной хуйнёй.


Ну так вот. В очередной раз решил я с винды на линукс пересесть, потыкать Niri, да и винде уже 5 лет. Знатно засрана дерьмом, срок её подошел к логическому концу. Ну и вопрос встал ребром.

Все наработки и данные у меня в WSL на убунте. Логично что можно зайти в убунту и скопировать всё нужное в /mnt/c/backup, но это костыль, потому что будет потеря скорости, лишняя прокладка. Да, я честно пытался 40 гигов перетащить через copy и rsync, но прошло 2 часа и чет особо нихуя не продвинулось.

Ну не может же такого быть, должно всё нативненько бекапиться. Так и оказалось.

Заходим в powershell и выполняем:

wsl -l -v


Выведет список дистрибутивов, я работаю на Ubuntu 24.04, дальше делаю так:

wsl --shutdown
wsl --export "Ubuntu-24.04" D:\backup\wsl-ubuntu.tar


Жду 10 минут и получаю полноценный tar с полной копией файловой системы.

Ну великолепно же! Ну а дальше всё это я потом распакую и раскидаю уже по местам. Очередной пример того, что если не интересоваться новым и работать только с привычными инструментами, можно нехило деградировать, сидеть и ждать у моря погоды.

Знаю, будешь пытать меня в комментах насчет — а какой линукс ты поставил? Скажу так — пидорский. Но я только посмотреть, один раз не пидарас )

🛠 #linux #wsl #windows

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
254
Please open Telegram to view this post
VIEW IN TELEGRAM
52
Please open Telegram to view this post
VIEW IN TELEGRAM
4111
В прошлом посте мы с тобой перелопалити приоритеты чтения sshd_config, сегодня добъем нюансы. Меня вчера опередили в комментариях с Match, но не страшно.

Сюда по классике не влезло, много буков, поэтому всё в блоге.

Читать продолжение: https://two.su/atcbh

🛠 #linux #devops

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
23
Please open Telegram to view this post
VIEW IN TELEGRAM
149
Forwarded from Selectel
Команды для спасения вечера сисадмина 💯

После 17:00 — самое подходящее время для срочных задач.

Сохраните заранее подборку консольных команд, чтобы сэкономить часы рутины. Собрали для вас самое нужное вместе с Романом Шубиным, СТО и автором канала Bash Days.

❤️ — если было полезно.
275
👆👆👆

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

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

А в пятницу вас ждет еще один небольшой и вкусный материал, так что следи за новостями.
Please open Telegram to view this post
VIEW IN TELEGRAM
32
Заберите девопса из РЖД, пока он там не автоматизировал вообще всё 🙃

Три года работает с живой инфраструктурой, в его хозяйстве около 300 серверов, кубер на 250+ подов, критичные системы и объекты КИИ. С отличием окончил Linux Factory.

Умеет в ансибл, баш, кубер, ArgoCD, Helm, гитлаб, докер, мониторинг и отказоустойчивый PostgreSQL.

Из интересного

• перевёл все линуксовые серверы на управление через ансибл
• сократил ввод нового серверного комплекса до 10 минут
• мигрировал критичные системы между ЦОД
• настроил автоматический failover PostgreSQL

Ему можно отдавать не только ямлики, но и прод. Умеет искать причины проблем, автоматизировать рутину и думает про отказоустойчивость.

Ищет удалёнку или гибрид в Санкт-Петербурге.

Пиши сюда: @mchernishovv

🛠 #биржатруда

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
60
Тут ёбнутая тема пошла, чтобы вы могли ходить на нашу апиху, нужно установить сертификаты от Минцифры.

Я долго это игнорил, пока всё к херам не сломалось.

Ошибка: cURL: SSL certificate problem: self-signed certificate in certificate chain


Да, в голову сразу пришло решение — ёбнуть SSL Ignore. Но это костыль и безопасники в жопу выебут.

Хули, пришлось разбираться. Как оказалось Angie и nginx трогать не надо и всё решается на уровне дистрибутива. У меня убунты старенькие торчат в продах, поэтому затачивал под них. Но смысл не меняется и можешь подкрутить под свои дистрибутивы.

Чтобы 100500 команд не вводить, сделал всё одной командой, запускаешь из консольки и всё сразу работает, без костылей и нападок на твой задний проход со стороны ИБешкников. Даже в скрипт сохранять не нужно.

Установка РФ-сертификатов:

(
set -e

cert_tmp="$(mktemp -d)"
trap 'rm -rf "$cert_tmp"' EXIT

curl -fsSL \
https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer \
-o "$cert_tmp/root.crt"

curl -fsSL \
https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer \
-o "$cert_tmp/sub.crt"

openssl x509 -in "$cert_tmp/root.crt" -noout -subject |
grep -Fq "Russian Trusted Root CA"

openssl x509 -in "$cert_tmp/sub.crt" -noout -subject |
grep -Fq "Russian Trusted Sub CA"

root_fingerprint="$(
openssl x509 -in "$cert_tmp/root.crt" -noout -fingerprint -sha1 |
cut -d= -f2 |
tr -d ':'
)"

test "$root_fingerprint" = "8FF915CCAB7BC16F8C5C8099D53E0E115B3AEC2F"

openssl verify \
-CAfile "$cert_tmp/root.crt" \
"$cert_tmp/sub.crt"

install -m 0644 "$cert_tmp/root.crt" \
/usr/local/share/ca-certificates/russian_trusted_root_ca.crt

install -m 0644 "$cert_tmp/sub.crt" \
/usr/local/share/ca-certificates/russian_trusted_sub_ca.crt

update-ca-certificates

curl -fsSvo /dev/null https://business.t-bank-app.ru/
)


Ну и всё, если в куче мусора увидел — SSL certificate verify ok, значит всё прошло успешно. Перезапускаешь свои пыхи или чё там у тебя и можно дальше не париться.

Такие дела. Изучай.

🛠 #devops #security #bash

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
388
Всем привет. Вчера решал задачу фильтрации txt-файла и нашёл конструкцию на awk, от которой испытал эстетический оргазм. Решил с вами ею поделиться.

Итак, задача: есть _data.txt_ с данными и _filter.txt_ со списком фильтрации.

Строки data.txt обрабатываются, если есть совпадение в filter.txt. Это классическая задача фильтрации (например, обработка белых и чёрных списков).

И да, я знаю про программы comm и join, с помощью которых можно решать подобные вещи, но мне нравится awk, потому что делает это гибче благодаря наличию языка программирования и не требует предсортировки.

👍 Итак, сама конструкция:


awk 'NR == FNR { filter[$0] = 1; next } $0 in filter { print $0, "in filter" }' filter.txt data.txt


Обратите внимание: здесь два блока обработки строк, каждый со своим условием

1. NR == FNR { filter[$0] = 1; next }
2. $0 in filter { print $0, "in filter" }

Обычно выполняются оба блока: сначала первый, потом второй, но здесь это не так. Первый блок только считывает данные filter.txt в массив filter.

Второй обрабатывает только те строки, которые есть в массиве.

NR — встроенная переменная, номер записи ДЛЯ ВСЕХ файлов.
FNR — аналогична предыдущей, но начинается с 1 для каждого нового файла.
filter[$0] = 1 — сохраняем всю строку первого файла как ключ массива.
next — сразу переходит к обработке следующей строки.

Таким образом, связка условия NR == FNR и next будет работать только для первого файла (filter.txt).

Для второго файла условие NR == FNR уже не соблюдается, поэтому первый блок не выполняется, а второй выполняется, если строка данных присутствует в массиве filter.

Ну и пример из реальной жизни — filter.txt:

RU
BY


data.txt

RU 127.0.0.1
BY 127.0.0.2
US 127.0.0.3
KZ 127.0.0.4


awk 'NR == FNR { filter[$1] = 1; next } $1 in filter { print $2, "in filter" }' filter.txt data.txt

127.0.0.1 in filter
127.0.0.2 in filter


Обратите внимание: на выходе только нужные строки и только нужный столбец. Как же это круто!

Маленькое ограничение: содержимое filter.txt, загруженное в массив filter, должно помещаться в оперативную память. Иначе система может начать активно использовать swap, а процесс — завершиться из-за нехватки памяти.

man awk
man comm
man join


Всем работы без багов.

© Tagd Tagd

🛠 #devops #bash #linux

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
67
Я начал практиковать собесы с закрытыми глазами.

Соль тут в том, что глаза закрывает кандидат. Естественно сразу большая часть кандидатов отваливается. Причины — кошка в камеру хуёв напихала, глаза не закрываются с рождения и т.п.

Но мы то знаем правду… 90% сидят на ИИшке и зачитывают ответы, это блядь просто смешно выглядит. Сначала кандидат выслушивает вопрос, потом 3 минуты начинает мычать вообще не по теме. А потом чудесным образом приходит в себя и начинает выдавать правильные ответы, что аж от языка отлетает.

На прошлой неделе я это сразу просек, попросил закрыть человека глаза и повторить ответ который он только что мне зачитал. Сука… он даже не запомнил, что прочитал. Подвели писю к носу. И что интересно, он не признался, что читал с экрана. Ну да хуй с ним.

Мир изменился, поэтому приходится придумывать новые фильтры. На любого хитрожопого, найдется более хитрожопый.

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

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

Смешно, но скоро так и будет — засунул себе поглубже и мозг наполняется нейросетевыми высерами.

Короче мозги не еби, будь честен, прозрачен, можешь припизднуть конечно, но всегда знай меру и балансируй по ситуации. Тыж головастый.

🛠 #workflow

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
1123
This media is not supported in your browser
VIEW IN TELEGRAM
☁️☁️☁️☁️☁️☁️☁️

24 сентября Yandex Cloud проведёт Yandex Scale 2026 — флагманскую технологическую конференцию, посвящённую облачным технологиям, инфраструктуре и искусственному интеллекту.

🎨🎨🎨🎨🎨🎨🎨🎨🎨🎨
🎨🎨🎨🎨🎨🎨🎨🎨🎨🎨
🎨🎨🎨🎨🎨🎨🎨🎨🎨
В программе четыре продуктовых трека — AI, Data, Security и Hybrid Infrastructure & DevOps, — и отдельный углублённый технологический трек DeepTech, который пройдёт только онлайн.

В треке Hybrid Infrastructure & DevOps откроем программу рассказом про главные инфраструктурные анонсы и новинки 2026 года. На примере Stackland расскажем, как построить свою внутреннюю платформу по методологии Platform Engineering и ускорить time to market. Разберём, зачем бизнесу кластеры Yandex Managed Service for Kubernetes на тысячи нод — на реальном продакшн-кейсе Mindbox. Расскажем, как получить предсказуемую и безопасную ИИ‑разработку с ИИ‑командой на платформе SourceCraft и максимизировать возврат инвестиций от ИИ. Разберём возможности построения реальной гибридной инфраструктуры на базе единой технологической платформы и то, как полноценно объединить локальную и облачную среды, включая выделенные серверы BareMetal. И на примере крупного банка рассмотрим, как создать полноценный гибрид, соблюдая требования безопасности, регуляторов и бизнеса одновременно.

🎨🎨🎨🎨🎨🎨🎨🎨🎨🎨
🎨🎨🎨🎨🎨🎨🎨🎨🎨🎨
🎨🎨🎨🎨🎨🎨🎨🎨🎨
Отдельно пройдут воркшопы по Hybrid Infrastructure & DevOps. Смоделируем аварию на физическом сервере и проверим, как гибридная архитектура на облаке и BareMetal держит отказоустойчивость. Научим разворачивать корпоративную ИИ-систему с RAG-сценарием на Yandex BareMetal и Stackland — чтобы модель работала с внутренней документацией и базами знаний. Разберём, как эффективно делить GPU-ресурсы Yandex Managed Service for Kubernetes между параллельными задачами обучения моделей. И покажем, как команда ИИ-агентов SourceCraft проходит путь от бизнес-требований до безопасного релиза — с проверкой на уязвимости на каждом шаге.

🎨🎨🎨🎨🎨🎨🎨🎨🎨🎨
🎨🎨🎨🎨🎨🎨🎨🎨🎨🎨

На конференции будут не только треки — ещё демозоны, питчинг решений, IT-квест и мерч. Параллельно в онлайн-студии — розыгрыш призов и секретный гость.


Программа целиком — на сайте конференции, регистрация там же, а участие бесплатное!
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Мёртвое ядро или мой новый проект DK.

Чё тянуть кота за яйца, интригу закину https://deadkernel.ru, полный анонс будет чуть позже…

Где-то там плачет грустный хуй сервер, а у нас всё по взрослому.

Для студентов Linux Factory бонусы, но они и так уже про них знают и активно используют.


Неси своё слово, делись с коллегами годнотой 😻
Please open Telegram to view this post
VIEW IN TELEGRAM
152