ru
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Открыть в Telegram

Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru

Больше

📈 Аналитический обзор Telegram-канала Bash Days | Linux | DevOps

Канал Bash Days | Linux | DevOps (@bashdays) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 23 741 подписчиков, занимая 5 667 место в категории Технологии и приложения и 27 976 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 23 741 подписчиков.

Согласно последним данным от 27 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -210, а за последние 24 часа — -11, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 26.65%. В первые 24 часа после публикации контент обычно набирает 13.69% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 6 328 просмотров. В течение первых суток публикация набирает 3 252 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 35.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как bashdays, linux, bash, docker, скрипт.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

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

23 741
Подписчики
-1124 часа
-407 дней
-21030 день
Архив постов
Богатствуйте! И снова полезный пост! Тунеядцев прошу расслабить жопы и перейти к концу, там анекдот. Меня часто спрашивают… Нет, всем похуй. Короче:
systemctl restart php-fpm

Unit php-fpm.service could not be found.
Хм, я точно знаю что php на сервере есть! Так какого чернослива? За годы практики, я выработал методику поиска сервисов, которые называются совсем не очевидно. В примере выше, php сервис называется: php8.2-fpm-fuck-you! Ха! В жизни не догадаешься. Первым делом пиздуем в:
history | grep php
И внимательно смотрим, если повезет, то там будет эта заветная строчка с ребутом и именем замудрёного сервиса. Возможно когда-то ты с ним имел дело, либо кто-то пытался иметь. Если не повезло делаем так:
systemctl | grep php

php8.2-fpm-fuck-you.service
phpsessionclean.timer
Эта штука гарантированно выплюнет тебе полное название сервиса, ну а дальше ты знаешь что с ним делать. Можно конечно воспользоваться внешними утилитами, но не рекомендую. Потому что systemctl есть всегда, а внешних утилит - нет. ➡️ Сразу привыкай работать с инструментами из коробки и будет тебе счастье. Все! Ну и анекдот как обещал: еслиб у бабушки был бы хуй, она была бы дедушкой. tags: #linux #debug — 🔔 @bashdays➡️ @gitgate

Митап честных кейсов по сетевой безопасности от Positive Technologies 24 сентября в 16:00 Новый формат обсуждения продуктов д
Митап честных кейсов по сетевой безопасности от Positive Technologies 24 сентября в 16:00 Новый формат обсуждения продуктов для ИБ. Никаких разговоров о фичах — только отзывы и «боевые» истории пользователей песочницы PT Sandbox и системы поведенческого анализа трафика PT NAD. В программе: · Нюансы сетевых атак · Особенности работы на больших потоках · Бенефиты от объединения двух технологичных продуктов Вас ждет неформальная обстановка, много реальных кейсов и честное мнение о NetSec-решениях Positive Technologies. Регистрируйтесь, чтобы не пропустить!

Здрасти. К делу! Гиту откровенно насрать на права доступа файлов. И после клонирования репы, эти права будут установлены по umask пользователя. Ситуация не критичная, но иногда случаются моменты когда нужно все эти права сохранить и после клона восстановить. На помощь приходит костыль, всё в лучших традициях!
#!/bin/bash

find . -type f -exec stat --format='%a %n' {} \; > permissions.txt
git add permissions.txt
git commit -m "на залупе лешего вертели"
git push
Пробегаемся по всем файлам и каталогам, записываем текущие права в файл permissions.txt, коммитим, пушим. Ну и скрипт для восстановления прав:
#!/bin/bash

if [ -f permissions.txt ]; then
  while read perm file; do
    if [ -f "$file" ]; then
      chmod "$perm" "$file"
    fi
  done < permissions.txt
fi
Вот и вся наука. По желанию вешаешь это на Git Hook (post-checkout, post-merge) и автоматизируешь.
Как автоматизировать писал в этом посте, на примере можешь адаптировать.
А еще есть git-restore-mtime, для восстановления метаданных времени модификации файлов. Такие дела, изучай… tags: #linux #bash — 🔔 @bashdays➡️ @gitgate

Не хватает практики и знаний для работы с K8s? ➡️ Поможем DevOpsам систематизировать знания и освоить навыки работы с кластер
Не хватает практики и знаний для работы с K8s? ➡️ Поможем DevOpsам систематизировать знания и освоить навыки работы с кластером.
Поток “Kubernetes База” ➕ видеокурс “Мониторинг в Grafana” ➕ видеокурс "Ansible. Основы" ➕ видеокурс "Docker. Основы" 🔥70 000 ₽ (вместо 100 000 ₽) Промокод на скидку в боте до 20 сентября
⭐️ОБНОВИЛИ ВЕСЬ КУРС в июле 2024 г.Чему научим: - Основам работы с K8s, системой автоматизации развертывания, масштабирования и управления приложениями в контейнерах. - Запускать кластер, работать с базовыми абстракциями и подключать дополнительные компоненты - Запускать приложение в кластере, понимать принципы работы сети и настраивать CI/CD пайплан Старт потока 7 октября ➡️ 7 недель обучения ➡️ 63 часа практики ➡️ 5 встреч со спикерами ➡️ Итоговая сертификация 👉 Промокод и подробнее о курсе в боте Реклама ООО «Слёрм» ИНН 3652901451

Сентябрь горит, как и моя жопа. Поставил я давеча на пятую малинку self-hosted гитлаб, чтоб к ребятам с LF быть поближе. Это
Сентябрь горит, как и моя жопа. Поставил я давеча на пятую малинку self-hosted гитлаб, чтоб к ребятам с LF быть поближе.
Это пост изобилует грубыми и матерными выражениями и, в силу своего содержания, вообще не предназначен для просмотра лицам с нежной и хрупкой психикой.
Всё бы хорошо, но в моменте пуша свеженького image docker в registry, я невзначай обнаружил, что в гитлабе его просто-напросто НЕТ! Куда же он сука такая делся? В облачном есть, в self-hosted — хуй! Ну думаю щас галочку где-нибудь в настройках поставлю и все у меня получится. Перерыл всё что только возможно. Но гитлаб тот еще выблядок парижской потаскухи. Нет галочки… Хуй сосали на вокзале!
Да даже взять ситуацию перевода private репы в public.
Кароче. Чтобы включить Container Registry, нужно зайти в конфиг /etc/gitlab/gitlab.rb и… Раскомментировать эту строчку:
gitlab_rails['registry_enabled'] = true
И после этого запустить:
gitlab-ctl reconfigure
gitlab-ctl restart
Пиздец, почему нельзя конфиг просто перечитать без перезагрузки всех сервисов и ожидания. И о чудо! Заветный пункт меню Container Registry внезапно появляется. Тут и сказочки конец. НО НЕТ. При попытке зайти в этот новый пункт, получаем ошибку:
Docker connection error. We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review the troubleshooting documentation .
Ебутся блохи в суматохе!!! Идем читать документацию!
Реестр контейнеров автоматически включается и становится доступным в вашем домене GitLab, если вы используете встроенную интеграцию Let's Encrypt.
Fuck This Shit! Включаем поддержку Let's Encrypt в конфиге gitlab.rb:
letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true
Запускаем gitlab-ctl reconfigure && gitlab-ctl restart Иииии… тадам, модуль registry запустился!
sudo gitlab-ctl status

ok: run: registry: (pid 20114) 0s
Квест успешно пройден, но мне пиздец как не понравилось! Поэтому сношу я этот sefl-hosted гитлаб к хуям и возвращаюсь в облачный. А на малинку пожалуй воткну gitea, надеюсь там такой хуйни не будет. Или будет? Ладно, в любом случае решение я тебе показал. Пользуйся! tags: #devops — 🔔 @bashdays➡️ @gitgate

❓Как эффективно работать с Планом обмена и синхронизировать данные между типовыми конфигурациями 1С? Узнайте на открытом веби
❓Как эффективно работать с Планом обмена и синхронизировать данные между типовыми конфигурациями 1С? Узнайте на открытом вебинаре 17 сентября в 20:00 мск, где мы разберем: - что такое План обмена и как работать с этим объектом; - как настроить типовую синхронизацию между базами 1С; - все возникающие вопросы. Спикер Юлия Харочкина — опытный программист 1С и преподаватель. Встречаемся в преддверии старта курса «Разработчик 1С. Basic». Все участники вебинара получат специальную цену на обучение! 👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/7ZG4/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Здарова! Годнота подъехала! Если любишь копаться в «кишочках» эта штука тебе обязательно пригодится, называется Binsider. Я с
+1
Здарова! Годнота подъехала! Если любишь копаться в «кишочках» эта штука тебе обязательно пригодится, называется Binsider.
Я себе в арсенал ее добавил, штука охуительная, при условии если знаешь зачем оно тебе и как этим пользоваться. Я пока не знаю, но обязательно разберусь. У хорошего девопса и бычий хуй веревка!
Короче это хуйня на расте позволяет анализировать «Эльфов» (ELF бинарники). - Статический анализ: изучение структуры бинарного файла, включая секции, сегменты, символы и релокации. - Динамический анализ: выполнение бинарного файла с отслеживанием системных вызовов и сигналов (strace/ltrace). - Извлечение строк: поиск полезных строк (например, паролей или URL) внутри бинарного файла. - Шестнадцатеричный дамп: просмотр содержимого файла в виде шестнадцатеричного кода с удобной визуализацией. Инструкция по установке тут, есть докеры-хуёкеры и т.п. Я собрал из исходников, делов 30 секунд:
cd /tmp

VERSION="0.1.0"

wget "https://github.com/orhun/binsider/releases/download/v${VERSION}/binsider-${VERSION}-x86_64-unknown-linux-gnu.tar.gz"

tar -xvzf binsider-*.tar.gz

cd "binsider-${VERSION}"

./binsider
➡️ Репка на гитхабе ➡️ Заценить на ютубе Обязательно посмотри, рекомендую! Ааа, еще всех вас с пятницей, хороших предстоящих выходных. Ну и самое главное — береги себя! Всех обнял 🙃 tags: #debug #linux #utils #utilites — 🔔 @bashdays➡️ @gitgate

🚀 Яндекс разработал AI-ассистента для работы с кодом С помощью сервиса разработчики смогут по фрагменту кода сгенерировать н
🚀 Яндекс разработал AI-ассистента для работы с кодом С помощью сервиса разработчики смогут по фрагменту кода сгенерировать наиболее вероятное его продолжение. Это поможет упростить написание и редактирование кода и ускорить продуктовую разработку в компаниях. Ассистент протестировали тысячи разработчиков Яндекса, 60% из которых стали постоянными пользователями сервиса. Использование Yandex Code Assistant помогает повысить эффективность работы: доверьте рутинные операции AI и сосредоточьтесь на решении более сложных задач, чтобы ускорить разработку и сократить Time to market. Да и просто делает жизнь разработчиков проще и счастливее. ⚙️ Для кого Инструмент полезен разработчикам любого уровня, а также техническим руководителям, которые хотят оптимизировать процессы и повысить продуктивность своих команд. → Как попробовать Yandex Code Assistant доступен бесплатно на облачной платформе Yandex Cloud в режиме Preview. Для тестирования оставьте заявку.

Хелоу мая диа френдз! Я повидал дохуя bash скриптов по зачистки старых бекапов, какие-то работают заебись, какие-то создают лишь видимость. Заебись когда бекапы у тебя лежат на той же машине где ты их делаешь. Запускаешь по крону команду rm и паре с find и зачищаешь ненужное гавно которое старше определенного времени. А чо делать когда бекапы «правильно» заливаются в облако s3 по протоколу swift? Там find с rm уже не прокатит. Можно конечно изгаляться, но я в рот ебал изобретать очередной велосипед. Для этих целей отлично подходит rclone, кто бы блядь мог подумать. Работает так:
/usr/bin/rclone --config ~/.config/rclone/rclone.conf \
--log-file /var/log/rclone-trasher.log \
-v delete selectel:backups/1c/ --min-age 3d --rmdirs
Показываем где лежит конфиг, конфиг представляет нечто такое:
[selectel]
type = swift
env_auth = false
user = bashdays
key = fuckyou
auth = https://auth.selcdn.ru/
endpoint_type = internal
Пишем непотребства в лог файл, чтобы потом посмотреть что там в кроне навыполнялось. Указываем где чистим бекапы, задаем сколько бекапов нам оставить, в примере я оставляю за 3 последних дня. Бекапы у меня в каталогах по датам, добавляю ключик rmdirs. Вешаем на крон и идем дальше работать пинать хуи. По моему отличное решение, и даже думать не пришлось. Пользуйтесь на здоровье! tags: #devops — 🔔 @bashdays➡️ @gitgate

Selectel Tech Day — конференция для айтишников и бизнеса 10 октября Selectel проведет флагманскую конференцию — самую масштаб
Selectel Tech Day — конференция для айтишников и бизнеса   10 октября Selectel проведет флагманскую конференцию — самую масштабную в своей истории. В этом году будут обсуждать главные тренды в сфере железа, облачных сервисов, информационной безопасности и ML — каждое направление связали с определенной цифровой стихией и обыграли в докладах.   В программе: ✔️ эксклюзивная презентация ✔️ экспертные доклады ✔️ нетворкинг ✔️ активности на стендах ✔️ бесплатный мерч ✔️ афтепати   Где? Онлайн и офлайн в Центре событий РБК, Москва   Регистрируйтесь, чтобы не пропустить одно из главных IT-событий года: https://slc.tl/s5q3v Реклама АО «Селектел». ИНН: 7810962785 Erid: 2VtzqvwgbiF

Я тут решил поделиться впечатлениями. И хорошими и не очень. Вобщем, все в дом BashDays. Недавно мне дали премию за написание статей для BashDays. Сразу скажу, что на нее я не рассчитывал, поэтому охренел обрадовался и решил потратить ее на что-нибудь бесполезное, но приятно-интересное. В общем, прикупил себе Безвентиляторный ПК Intel Celeron N2840 @ 2.16GHz 8Gb 128Gb 2 Lan 1Gb wi-fi Intel® Centrino® Advanced-N 6205. (далее писюк) Проц выбрал именно такой из-за TDP 7W. На машине стояла Win10. Ну, я ее включил, залез на youtube. Измерил потребляемую мощность 12-15 Вт. Ну, короче, работать можно, если без претензий Корпус грелся, но я долго не работал. Снес. Поставил pfsense. Установилась легко. Работает шустро. Но я не смог поднять точку доступа WI-FI. Интерфейс поднимается, но режим точки доступа не доступен. Немного погуглил, народ пишет, что pfsense и wi-fi AP не очень дружат, и рекомендуют просто купить дрочку доступа. Ой, как забавно опечатался. Даже исправлять не буду. Снес. Поставил debian 12. Затем hostapd, dnsmasq, iptables. В общем, точка доступа поднялась с танцами и бубном, но, проверка скорости с помощью iperf3 показала, что ноут с этой точкой доступа работает на скорости около 35-37 Мбит/с. Между тем, мой старичек keenetic 4G (KN-1210) RU выдает 80-90 Мбит/с. И это включая интернет канал до Нидерландов. В общем, полное разочарование. Да, это на 2.4 ГГц. На 5 мне попробовать было нечем. Снес. После этого решил на пробу установить ipfire. Дистрибутив, специально заточен для периметрового маршрутизатора, но по функционалу, который можно доставить очень напоминает openwrt. (C самой openwrt я знаком чисто теоретически). Про ipfire раньше никогда не слышал, прям сегодня почитал, и решил попробовать. Знаете, впечатление очень даже ничего. Ставится просто, web-интерфейс довольно удобный. (За исключением правил firewall. Но это я после pfsense такой привередливый:-) Порадовала документация на сайте. Все очень простым английским языком. Да, один косяк. При установке, вначале указал язык русский и после перезагрузки в инсталляторе все тексты были квадратиками. Что-то парни со шрифтами намудрили.) Пришлось переставлять. Поставил, поднял точку доступа с пол-оборота, замерил скорость - 35-37Мбит/с. Грешу на wi-fi адаптер. Заменить полноценно Keenetic не получилось. Да, из самого неприятного, писюк греется. Я пробовал поставить частоты по минимуму, производительности хватает, но все равно греется, хотя и значительно меньше. Для проца температура совсем ерундовая, но для ссд и материнки условия не очень комфортные. Видимо придется колхозить вентилятор, тем более отверстия под 60мм есть. Буду рад послушать о вашем опыте использования подобных игрушек. О проблемах и путях решения. Пишите в комментах, кто для чего использует и какой софт. tags: #рабочиебудни © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

Хотите узнать, как автоматизировать процессы CI/CD и снизить порог входа в DevOps? Тогда присоединяйтесь к вебинару «Как эффе
Хотите узнать, как автоматизировать процессы CI/CD и снизить порог входа в DevOps? Тогда присоединяйтесь к вебинару «Как эффективно построить конвейер DevOps». Когда: 12 сентября в 11:00. Виталий Астраханцев, руководитель разработки инструментов DevSecOps в СберТехе, расскажет об инструменте Orchestra R, который позволяет настраивать конвейеры в режиме low-code. Поговорим о том, почему шаблонизация этапов так эффективна, и сколько DevOps-инженеров понадобится для создания конвейера с сотней шагов. Кому будет полезен вебинар: · PO/CPO, CTO · руководителям ИТ-отделов · руководителям разработки · Delivery Lead · DevOps-инженерам Регистрируйтесь сейчас, чтобы не потерять событие. До встречи на вебинаре!

Оказывается не все знают как в гитлабе сделать приватную репу публичной. ➡️ На примере облачного гитлаба: Пиздуем в ПроектSettingsGeneralVisibility, project features, permissionsProject visibility Выбираем из выпадающего списка: private, public, internal Если у тебя облачный гитлаб с группами, читай дальше. ➡️ На примере Self-Hosted: В отличии от облачного гитлаба, здесь недоступны варианты public, internal. Это многих смущает и вводит в ступор. Если коротко — сгорают жопы! Открываем проект c репозиторием, вверху слева будет название группы, у меня оно linuxfactory и следом название проекта. Тыкаем на название группы, попадаем примерно на такой урл: https://git.bashdays.ru/linuxfactor Нажимает три точки справа сверху появляется всплывашка, выбираем → Group Settings. Находим: Visibility level и выставляем видимость группы public. Пиздуем опять на страницу проекта с репозиторием → SettingsGeneralVisibility, project features, permissionsProject visibility И о чудо! Активируются пункты public и internal. Если чо-то забыл, добавляй в комменты, тема реально муторная и многие на эти грабли частенько наступают. Да чо греха таить я сам прихуел от таких пиздостраданий. Пользуйтесь! tags: #devops — 🔔 @bashdays➡️ @gitgate

Хотите улучшить свои карьерные возможности в администрировании Linux? Приходите на вебинар «Основы балансировки нагрузки в An
Хотите улучшить свои карьерные возможности в администрировании Linux? Приходите на вебинар «Основы балансировки нагрузки в Angie и Nginx». Вы будете знать: 1️⃣ архитектуру балансировки нагрузки в веб-приложениях; 2️⃣ различные методы балансировки нагрузки в Nginx и Angie, а также различия в этих продуктах; 3️⃣ отказоустойчивость. Информация очень полезна для администраторов Linux, веб-разработчиков и всех, кто использует Nginx в проектах. БОНУС: Регулярные выражения для системного администратора 👉 https://otus.pw/ufEA/ Курс Администрирование Nginx/Angie научит: 1️⃣ Настраивать Angie и Nginx как фронт веб-серверы для любых приложений. 2️⃣ Оптимизировать серверную и клиентскую производительность. 3️⃣ Конфигурировать балансировщики нагрузки L4 (TCP, UDP) и L7 (HTTP/HTTPS). 4️⃣Управлять логированием и оптимизировать HTTPS-соединения. И другое! 🦸‍♂️Спикер Николай Лавлинский - опытный разработчик, руководитель, преподаватель и автор каналов «Ускорение сайтов» и «Поддержка сайтов». Встречаемся 16 сентября: https://otus.pw/ufEA/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Здрасти. Еще один частый вопрос с проекта Linux Factory:
Я собрал докер имейдж, а контейнер вечно в ребуте либо вообще не запускается, чо делать и как отлаживать?
Давай симулируем ситуацию и попробуем что-то с этим сделать. Для начала соберем имейдж, это будет простой nginx + свой конфиг, который будет копироваться с локальной машины в имейдж. Создаем на хостовой машине пару файлов: Dockerfile:
FROM nginx:latest
WORKDIR /etc/nginx
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
nginx.conf
user  nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name localhost;

        location / {
            return 200 'Hello, Docker!'
            add_header Content-Type text/plain;
        }
    }
}
Собираем имейдж:
docker build -t my-nginx .
Ждем, на экране бежит куча всякого непотребства. Это нормально. Ждем… Проверяем:
docker images
Ага, все ок, выплюнуло что-то вроде:
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
my-nginx     latest    b844ef77daa3   33 seconds ago   188MB
Запускаем:
docker run -d -p 80:80 my-nginx
Проверяем:
docker ps
Хуй там плавал. Ничо не стартануло… ошибок нет, куда смотреть? Если контейнер вообще не запускается, то для начала смотрим логи: 1. Узнаем состояние контейнера:
docker ps -a
Видим хуй с маслом: Exited (1) 4 minutes ago 2. Смотрим логи:
docker logs --follow <id or name>
В <id or name> подставляем айдишник либо имя контейнера: В логах видим ошибку:
 invalid number of arguments in "return" directive in /etc/nginx/nginx.conf:15
Вот! С ней уже можно работать. Получается мы посмотрели логи, даже для незапущенного контейнера. Пиздуем в nginx конфиг и видим, что в 14й строке проебали точку с запятой. Дополнительно можно посмотреть коды выхода:
docker inspect <id or name>
Например, если код выхода ExitCode = 137, значит не хватило ресурсов, подкинь памяти и все взлетит. Наверное… Это основные моменты отладки. Ну а если контейнер все же запустился, но что-то не работает, сначала повторяем все вышенаписанное. Ну и дополнительно можешь подключиться к нему в интерактивном режиме:
docker exec -it <id or name> bash/sh
Подставляешь id/name контейнера и выбираешь шелл, частенько bash и коробки не установлен, поэтому как вариант запускаешь sh. А для визуализации слоев используем утилиту dive Установка dive:
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb
Открываем имейдж на анализ:
dive <id or imagename>
Подставляем id или имя — ИМЕЙДЖА (не контейнера) Смотрим, охуеваем, закрываем. Еще можно глянуть конкретный файл в контейнере:
docker exec -it <id or name> cat /etc/nginx/nginx.conf
Либо скопировать его себе на локальную машину:
docker cp <id or name>:/etc/nginx/nginx.conf /tmp
Поправить и скопировать обратно в контейнер:
docker cp /tmp/nginx.conf <id or name>:/etc/nginx/nginx.conf
Перезапускаем контейнер с новым конфигом:
Прикол в том, что тебе не нужно билдить новый имейдж, ты делаешь правки прям в контейнере.
docker exec <id or name> nginx -s reload
Такие дела! Если знаешь еще хаки и способы отладки контейнеров/имеджей, пиши в комменты, будет полезно! tags: #devops #debug #docker@bashdays@gitgate

🖥Для многих ИТ-компаний, которые занимаются разработкой софта, одним из важнейших элементов является лицензирование ПО. Оно
🖥Для многих ИТ-компаний, которые занимаются разработкой софта, одним из важнейших элементов является лицензирование ПО. Оно выполняет не только функцию защиты от пиратства, но и является хорошим средством заработка. Гибкое лицензирование помогает продавать ПО эффективно и соответствовать меняющимся требованиям рынка. 🐪20 сентября в Москве и 4 октября в Санкт-Петербурге состоится конференция Guardant Day – мероприятие для обмена практическим опытом по вопросам обеспечения технической защиты, выбора бизнес-модели лицензирования и определения стратегии развития продукта. Что мы подготовили для участников: 🔘Круглый стол, посвященный мерам государственной поддержки вендоров ПО. 🔘Кейсы по работе с системой защиты и лицензирования от разработчиков ПО: практические рекомендации. 🔘 Экспертные доклады о технологиях, инструментах и продуктах. 🔘Презентация новой версии Guardant SLK 4.0 и планы по развитию. 🔘Сессия для ИТ/ИБ-маркетологов с экспертными докладами и обменом опытом. 🔘Технические стенды с возможностью увидеть продукты в действии. В этом году мероприятие пройдет: 🌆20 сентября в Москве. Регистрация тут 🌉4 октября в Санкт-Петербурге. Регистрация тут В обоих городах начало деловой части в 14:00. Участие в мероприятии бесплатное по предварительной регистрации. Подробнее о мероприятии в ТГ-канале Guardant TechClub erid LjN8K93Eg

Обычно bash используется для неинтерактивного выполнения скриптов. А что делать, если хочется чего-то интерактивного? Можно использовать оператор read. По умолчанию он читает ту херню, которую пользователь пишет на клавиатуре. Ну, не всю херню. В общем, тут возникают проблемы. Даже не так. ТУТ ВОЗНИКАЮТ ПРОБЛЕМЫ. Проблем несколько, и они нихрена не решаются простыми способами: 1. Только простые клавиши генерят одиночные коды типа буквы, цифры, печатные символы. 2. Стрелки, HOME, END... и особенно функциональные клавиши (F1-F12) генерят многобайтные коды. 3. Клавиши TAB ENTER SPACE вообще нихрена не выдают. 4. Коды нажатых клавиш зависят от терминала, который у вас эмулируется. 5. Очень много клавиш используется в качестве "горячих", поэтому их обработка производится раньше, чем их обработает bash. В общем - если вы умный человек - не используйте bash для обработки функциональных клавиш. А если похожи на меня - приведу функцию, которая помогает минимизировать проблемы. Поскольку не все клавиши генерят печатные коды, я не придумал ничего более умного, чем конвертнуть коды в hex-последовательность. Поверьте, работать со строкой в 10 символов проще, чем с управляющими символами. Понятней. Программа более-менее обрабатывает совместное нажатие CTRL+, ALT+. Не обрабатывает нажатия нескольких клавиш.

#!/bin/bash

function GET_KEY(){
  declare K1 K2 K=
  declare -i i
  read -rsn1 K1;read -rsn4 -t 0.001 K2
  if [[ "$K1" != $'\x1b' ]];then
    K2=
  fi
  K1="${K1}${K2}"
  i=${#K1}
  while ((i--));do
    printf -v K2 "%02X" \"${K1:$i:1}\"
    K=${K2}${K} 
  done
  printf "%s" $K
}
clear
echo "TERMINAL="$TERM
KEY=1
while [ "$KEY" != "" ];do
  KEY=$(GET_KEY)
  echo $KEY
#  echo -e "\x$KEY"
done
сохраните в файл key2hex.sh
chmod +x ./key2hex.sh
./key2hex.sh
Под закрытым текстом объяснения для начинающих. Поскольку программа простая - сильно комментировать не буду. read -rsn1 K1;read -rsn4 -t 0.001 K2 считывает 1 символ, потом возможно еще 4, но с малым временем ожидания. Если символ многобайтный - в буфере он уже есть. Если символ начинается не с кода 1b (ESC) он должен быть однобайтным. ${#K1} -число символов в строке. Далее в цикле while ((i--));do посимвольно преобразуем строку в hex, накапливая в переменной K echo -e "\x$KEY" команда перевода hex в char привожу для примера. Для прикола попробуйте выполнить программу в разных терминалах (LxTerminal и tty1) и посмотреть на F5. Поясню, в tty1 можно перейти из GUI CTRL+ALT+F1, а вернуться обратно обычно ALT+F7 Ну, или не F7. посмотреть, куда возвращаться можно командой w . Даже маленькие разберутся. В общем, терминал(ы) - штука сложная. И тот только теперь я начал немного понимать, нахрена нужна библиотека ncurses. help read printf man w printf tags: #bash © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

25 сентября в Москве пройдёт одно из самых крупных мероприятий по облачным технологиям – Yandex Scale На конференции выступят
25 сентября в Москве пройдёт одно из самых крупных мероприятий по облачным технологиям – Yandex Scale На конференции выступят эксперты Yandex Cloud, а также приглашённые специалисты из Mindbox, Lamoda, Райффайзен банка и других компаний — всего более 50 спикеров. Генеративные нейросети, речевые технологии, новинки сервисов инфраструктуры, решения по работе с данными и безопасности, AI‑инструменты и serverless‑подход — в каждом треке ожидаются технологические анонсы и разбор кейсов. Мероприятие будет интересно как руководителям и менеджерам, так и разработчикам, тестировщикам, архитекторам, инженерам SIEM и другим ИТ-специалистам. Присоединиться можно офлайн и онлайн, очных участников ждёт afterparty. Участие бесплатное, регистрация открыта.

Еще раз привет. В последнее время многие столкнулись с проблемой при запуске пайплайнов в гитлабе. ㅤ Требуется какая-то ебуча
Еще раз привет. В последнее время многие столкнулись с проблемой при запуске пайплайнов в гитлабе. Требуется какая-то ебучая Verify my account, квест который не так просто пройти. Но есть способ это обойти, спасибо за наводку Akhmed Gvashev. Пиздуем в Settings → CI/CD → Runners → Instance runners и отключаем Enable instance runners for this project. Всё, дело в шляпе. А дальше регистрируешь свои локальные раннеры и запускаешь пайплайны хоть до посинения. Пользуйтесь! tags: #devops — 🔔 @bashdays➡️ @gitgate

При создании продукта разработчикам часто приходится выполнять непрофильные задачи. К примеру, разрабатывать и настраивать се
+4
При создании продукта разработчикам часто приходится выполнять непрофильные задачи. К примеру, разрабатывать и настраивать сервисы для нотификаций: уведомления об изменении статуса заказа, о входе в аккаунт и многое другое. Чтобы разработчикам не приходилось делать это самостоятельно, Yandex Cloud предоставляет готовые решения: Yandex Cloud Postbox — для отправки email-сообщений и Yandex Cloud Notification Service — для мобильных push-уведомлений. В карточках рассказываем почему стоит воспользоваться готовым решением 👉