en
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel Bash Days | Linux | DevOps

Channel Bash Days | Linux | DevOps (@bashdays) in the Russian language segment is an active participant. Currently, the community unites 23 803 subscribers, ranking 5 708 in the Technologies & Applications category and 28 124 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 23 803 subscribers.

According to the latest data from 16 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -201 over the last 30 days and by -10 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 20.40%. Within the first 24 hours after publication, content typically collects 11.53% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 4 855 views. Within the first day, a publication typically gains 2 744 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 17.
  • Thematic interests: Content is focused on key topics such as bashdays, linux, bash, docker, скрипт.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

Thanks to the high frequency of updates (latest data received on 17 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

23 803
Subscribers
-1024 hours
-287 days
-20130 days
Posts Archive
🔥Кто на новенького? В реестре ФСТЭК пополнение: платформа серверной виртуализации VMmanager российской компании ISPsystem по
🔥Кто на новенького? В реестре ФСТЭК пополнение: платформа серверной виртуализации VMmanager российской компании ISPsystem получила сертификат. Компания ISPsystem (входит в «Группу Астра») 🗣шепнула мне на ушко, что она успешно завершила сертификацию своего флагманского решения — теперь VMmanager не просто платформа, а сертифицированное средство виртуализации 4-го класса защиты. Это значит, что используя платформу, вы можете быть уверены в том, что ваши данные в безопасности — представьте, что их защищает сам Джейсон Стэтхэм! ⚡️ISPsystem сделали как надо, а как не надо, не делали — VMmanager полностью соответствует государственным требованиям к безопасности информации и позволяет применение: ✅в государственных информационных системах до 1-го класса защищенности включительно; ✅в автоматизированных системах управления производственными и технологическими процессами до 1-го класса защищенности включительно; ✅в информационных системах персональных данных до 1-го уровня защищенности включительно; ✅в значимых объектах критической информационной инфраструктуры до 1-го категории включительно. Теперь подробнее про решение. VMmanager — софт для управления аппаратной и контейнерной виртуализацией. Продукт позволяет централизованно управлять виртуальной средой средой, объединять физические серверы и сетевые хранилища в единый кластер виртуализации. Высокий уровень надежности обеспечивают НА-кластеры, встроенное резервное копирование и микросервисная архитектура. Ознакомиться со всеми возможностями платформы можно в видео. Наливайте кофеек и наслаждайтесь просмотром ☕️ А еще ребята ведут свой канал, где делятся планами, дайджестами и ведут интересные рубрики тут. Реклама, АО «Экзософт»

Ребята с LF порой интересуются — а нахуя в nginx нужна поддержка lua? Можно какой-то пример, но только не Hello World? Конечно можно! Понадобилось мне как-то реализовать продвинутый basic auth, чтобы nginx сходил в mysql базу и сопоставил введенные учетные данные. А как блядь это сделать? Тут-то и пригодится Lua! Для начала создаем базу (nginx_auth) и табличку users. Ну и в ней колонки username и password. В username храним имя пользователя, в password захэшированный пароль:
SHA1('$UpperPa$$word')
Эту команду выполняешь в mysql, в ответ он выплюнет тебе хэш, его и нужно будет заебенить в колонку password. Дальше конфигуряем nginx:
    location / {
        content_by_lua_file /etc/nginx/lua/auth.lua;
    }

    location @authenticated {
        root /var/www/bashdays/htdocs/site;
        index index.html;
    }
В nginx само собой добавляем модуль Lua, Как его собрать можешь в гугле посмотреть, ну либо взять какойнить openresty.
Ну и сам скрипт кидаем в /etc/nginx/lua/auth.lua;
local mysql = require "resty.mysql"
local sha1 = require "resty.sha1"
local resty_string = require "resty.string"
local db, err = mysql:new()

-- Установка таймаута
if not db then
    ngx.log(ngx.ERR, "failed to create mysql object: ", err)
    return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)
end

db:set_timeout(1000)

-- Подключение к базе данных
local res, err = db:connect{
    host = "db",
    port = 3306,
    database = "nginx_auth",
    user = "nginx_user",
    password = "password",
    charset = "utf8",
}

if not res then
    ngx.log(ngx.ERR, "failed to connect to MySQL: ", err)
    return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)
end

-- Извлекаем данные из заголовков Authorization
local auth = ngx.var.http_authorization

if not auth or not auth:find("Basic ") then
    ngx.header["WWW-Authenticate"] = 'Basic realm="Restricted Area"'
    return ngx.exit(ngx.HTTP_UNAUTHORIZED)
end

-- Парсим Basic Auth заголовок
local encoded = auth:sub(7)  -- Убираем "Basic " из начала
local decoded = ngx.decode_base64(encoded)

if not decoded then
    ngx.header["WWW-Authenticate"] = 'Basic realm="Restricted Area"'
    return ngx.exit(ngx.HTTP_UNAUTHORIZED)
end

-- Разделяем строку на имя пользователя и пароль
local username, password = decoded:match("([^:]+):(.+)")

if not username or not password then
    ngx.header["WWW-Authenticate"] = 'Basic realm="Restricted Area"'
    return ngx.exit(ngx.HTTP_UNAUTHORIZED)
end

-- Хешируем пароль
local sha1_obj = sha1:new()
sha1_obj:update(password)
local password_hash = resty_string.to_hex(sha1_obj:final())

-- Проверяем пользователя и пароль в базе данных
local sql = string.format("SELECT * FROM users WHERE username = '%s' AND password = '%s'", username, password_hash)
local res, err = db:query(sql)

if not res or #res == 0 then
    ngx.header["WWW-Authenticate"] = 'Basic realm="Restricted Area"'
    return ngx.exit(ngx.HTTP_UNAUTHORIZED)
end

-- Передаем управление Nginx для загрузки страницы
ngx.exec("@authenticated")
Всё! Релоадим nginx и получаем прокаченный Basic Auth.
Сам скрипт не претендует на совершенство и очень простой, объяснять его не вижу смысла. Пробегись глазами и всё сам поймешь.
Теперь nginx лезет в базу и при успешном исходе кидает пользователя в локейшен @authenticated. Да, скрипт работает на mariadb. Для всяких перкон и т.п. возможно нужно будет переделать SELECT. Вот такие пироги, вот тебе и заебачее применение Lua! ➡️ Кстати, если увидел вектор атаки, поделись в комментах. tags: #linux #devops #lua #nginx — 🔔 @bashdays➡️ @gitgate

🚀 Виртуальная стажировка DevOps – попробуй себя в реальных задачах! Команда Rebrain запускает Виртуальную стажировку DevOps
🚀 Виртуальная стажировка DevOps – попробуй себя в реальных задачах! Команда Rebrain запускает Виртуальную стажировку DevOps – интерактивный бот, где вы сможете прокачать DevOps-навыки на реальном проекте! О чём стажировка? Вы будете работать над задачами стриминговой платформы StreamVision, которая ежедневно обслуживает тысячи пользователей. Что вы сделаете: Настроите CI/CD, чтобы релизы проходили без сбоев Упакуете один из модулей платформы в Docker-контейнер для удобного развертывания Настроите мониторинг и разберётесь, как поддерживать стабильность системы Для кого? Для всех, кто хочет освоить DevOps в боевых условиях – от разработчиков до начинающих инженеров! Как участвовать? Просто заходите в бота и выполняйте задания в удобном темпе. ▶️ Начать стажировку: https://clck.ru/3Gdqg3 🎁 А еще в боте вас ждут розыгрыши практикумов и воркшопов от ведущих DevOps-инженеров Реклама. ООО "РЕБРЕИН". ИНН 7727409582 erid: 2VhzymPlWLb

Как не волноваться на собесах? или зачем на самом деле нужны HRы? Ответ простой — нужно иметь финансовую подушку. Тогда спокойно думаешь «ну не возьмут, так и в рот их ебать, по дороге домой возьму пиваса и потуплю в сериальчик».
А лучше просто иметь дохуя денег и никогда не ходить на собеседования!
Ну а если по делу — прочитал требования в вакухе, подготовься! А самое главное подготовь вопросы, их нужно обязательно задать, даже если тебе и не интересно что-то знать про их компанию. Банально если пишут — знание кубера. Почитай что такое кубер, что такое поды, что такое helm. Чисто теорию. Собес идет в формате беседы, значит и ты отвечаешь словами, поэтому если хуйнёшь в них теорией, то заработаешь плюсик.
Меня как-то спросили что такое - декоратор в питоне? А я ебу чтоли? Я на девопса иду! Ответил честно — хуй знает, я к вам не питон писать пришел, а программировать на yaml. Ямл макаки на острие атаки! Если вам важен декоратор, то обязательно его изучу и внедрю. Мне похуй, сделаю чёрта, лишь бы ЗП платили!
За прозрачность и честность, оффер в кармане! Но это было раньше… В 2025 намного сложнее устроиться, говорят что айти рынок переполнен, но на самом деле с этим дела обстоят иначе. HRы далбаёбы зажрались! Они тупо проёбывают деньги компании, показывают видимость работы, жонглируют кандидатами. У них нет цели взять тебя, у них есть цель — подольше поискать, подольше поебать мозги. В 99% случаев HRы вообще не шарят за айти. 🅰️🅰️ Беседовал ща с девочкой HR знакомой из крупного рекрутингово агентства, задал ей вопросы: 1. Я присылаю тебе резюме, что дальше? 2. Какие вопросы ты задаешь на собесе? 3. Как гарантировано устроиться к вам? Больше вопросов задать не успел, она пиздец занятая, чаю сам себя не выпьет. Извини Лера, ты мне разрешила заинсайдить! Ответы:
1. Ничего, когда ты первый присылаешь резюме на почту или делаешь отклик на ХЕХЕ, ты просто очередной лох из списка. Сопоставляем твоё резюме с вакансией. Если в вакансии прописано k8s, а у тебя в резюме нет этого слова — ты идешь нахуй! Хотя в компании нет этого самого k8s, а что это вообще? А если я пишу первая, то это просто для CRM, начальство это видит, но обычно никто на мои предложения не отвечает. А если отвечают, то быстренько сливаются.
2. Задаю те вопросы, что скинул техдир, они обычно технические. Я просто головой киваю и соглашаюсь со всем с кандидатом. Если кандидат ведет себя не уверенно, я делаю отметку, значит он этого не знает и плавает. Психология!
3. Пока я не захочу, ты не устроишься!
Вот и кризис! Кризис создают некомпетентные HRы, которым это выгодно. За всех HRов естественно не говорю, есть и толковые, но их единицы. План простой: 1. Выгоняем всех HRов нахуй на улицу 2. Повышаем ЗП девопсу/разработчику/qa или кто там еще 3. Даем им учетку на ХЕХЕ 4. Ставим задачу — найди толкового человека Профит! Этот план лично испытал несколько раз, работает на 100500%, толковый человек находится за 1-7 дней, без хуйни и без ЗП на HRов. Каков вывод? Правильно — HRы нахуй не нужны! Если ты НЕ толковый HR и думаешь по другому, ну чё, ждем тебя в комментах, давай обсудим твой лайв-стайл! Но сразу готовь жопу, не ровен час ребята тебя растерзают и выкинут в шерсть. tags: #рабочиебудни — 🔔 @bashdays➡️ @gitgate

🍀 Хотите работать в Selectel, но не знаете, с чего начать? Слёрм запустил крутой проект: серия онлайн-встреч с лидами из биг
🍀 Хотите работать в Selectel, но не знаете, с чего начать? Слёрм запустил крутой проект: серия онлайн-встреч с лидами из бигтеха! ➡️ 3 марта в 17:00 встречаемся с руководителями Selectel, чтобы выяснить, как проходят отборы на позицию DevOps Middle и помочь вам успешно пройти собеседование. На встрече разберём: 🟢 Какие задачи должен решать DevOps middle в команде Selectel? 🟢 Каким должен быть идеальный (мифический) сотрудник? 🟢 Ключевые компетенции: какими инструментами и подходами должен владеть DevOps middle? 🟢 Стоп-факторы при найме 🟢 Чему готовы обучать и многое другое. Ведущий — Вячеслав Федосеев, TeamLead DevOps в «Честном знаке», автор канала «DevOps Bootcamp с Федосеевым» В гостях: ➡️ Александра Рафаил, специалист по привлечению талантов ➡️ Андрей Ефремов, DevSecOps-инженер Приходите 3 марта в 17:00, чтобы понять, как попасть в Selectel и быть готовым к любым вопросам на интервью! ⭐️ Ссылка на трансляцию, расписание встреч с другими компаниями из BigTech и другие подробности в боте! Реклама ООО «Слёрм» ИНН 3652901451

Вот те еще одна забавная игрушка — про компьютерного мастера, который за установку каждого драйвера берет по 100500к и ёбет всех вжопы! PC Building Simulator 1-2 Короче очередной симулятор работы среднестатического специалиста по сборке и ремонку писюков. Любишь ковыряться с железками или хочешь научиться собирать компы? Игруля для тебя!
Учитесь чинить, собирать и настраивать компьютеры и стройте собственную империю. В игре более глубокая симуляция, улучшенный режим карьеры и новые возможности персонализации. Постройте величайший ПК в своей жизни из реалистичных комплектующих более 40 настоящих марок!
Что имеем: 1. Ебанутые клиенты 2. Проёбанные/спизженные детали 3. Неправильная диагностика 4. Во время ремонта всё сгорело 5. Поставщик прислал нерабочую хуйню 6. Уронил паяльник на яйца 7. Вендор ебет мозги и не оплачивает ремонт 8. Инженер забил хуй и забухал 9. Перманентный визит пожарников/налоговой 10. Пыль и тараканы 11. Клиент слился И много другое… Первая версия в стиме
Там как раз скидки под 80%. Но это нам ничего не дает, в РФ эта стимовская залупа не работает.
Поэтому дружно пиздуем на трекеры и качаем себе первую и вторую портабл версию. Проверил, оно там аккуратно лежит. 🅰️🅰️ С пятницей друзья, всем хороших предстоящих выходных. Ну и самое главное — берегите себя! tags: #hardware #games — 🔔 @bashdays➡️ @gitgate

YADRO приглашает С++ Software Engineer в команду Telecom 🔍 Вендор и производитель IT-инфраструктуры YADRO проводит SPRINT OF
YADRO приглашает С++ Software Engineer в команду Telecom 🔍 Вендор и производитель IT-инфраструктуры YADRO проводит SPRINT OFFER для С++ Software Engineer в двух направлениях: → В Telecom Platform вы будете развивать платформу, обеспечивающую middleware services, high avaliability, node management и delivery для приложений в составе базовой станции LTE/GS. А также участвовать в проектировании и развитии архитектуры телеком-платформы и разработке её компонентов в технологическом стеке C++/Linux. → Занимаясь разработкой базовой станции LTE/GSM и 5G Core, вы сможете создавать телекоммуникационные решения от этапа исследования и прототипирования до вывода в коммерческое использование пакетного ядра сети 5-го поколения. А также разрабатывать ПО для базовых станций LTE и реализовывать полный стек протокола 3GPP. Станьте частью инженерного сообщества с многопрофильной экспертизой и реализовывайте амбициозные проекты, влияя на продукт напрямую. 🔵 Читайте подробности на сайте и оставляйте заявку до 9 марта.

Захотелось мне сегодня порядок на внешнем винте навести, который подключен к малине. Естественно там разметка ext4. Ну дак вот. Цепляю этот диск к 11й винде по USB иии… хуй там плавал!
Эт всё понятно, но я почему-то думал что в 2025 году винда научилась с таким жить. Не научилась.
Ну мыж с тобой не пальцем деланные, если есть wsl значит оно может ext4 теоретически прочитать. Покопавшись некоторое время в куче говна и применив приёмчики от Чака Норриса мне удалось это победить. Показываю! Запускаем powershell, я запускал под суперадмином, хуй знает мож и от юзера прямоходячего сработает. В павершеле пишем:
wmic diskdrive list brief
В ответ получаем список доступных дисков, в том числе подключенных по usb.
Caption DeviceID Partitions
WDC     \\.\PHYSICALDRIVE2 1
ADATA   \\.\PHYSICALDRIVE1 3          
WD10    \\.\PHYSICALDRIVE0 1
Заебись! Я вижу свой usb диск, зовется он PHYSICALDRIVE2.
Там инфы выводится гораздо больше, так что есть возможность определить где какой диск.
Дальше. Если у тебя не стоит wsl, ставим:
wsl --install
Да, это все делаем в повершеле в винде. После установки запусти wsl с убунтой и задай пароль для рута, пусть там все инициализируется. Если всё сделал правильно, запускаем:
wsl --mount \\.\PHYSICALDRIVE2 --bare
В ответ получишь сообщение об успешном маунте. Ну либо тебя пошлют нахуй. Меня в первый раз послали, пока не добавил ключик bare.
Ключ bare монтирует диск в "сыром" виде, без автоматического создания файловой системы или попытки её определения. Это полезно, если вы хотите работать с диском на низком уровне, например, для восстановления данных, анализа структуры диска или выполнения других операций, которые требуют прямого доступа к данным на диске.
Ага, примонтировали, ну и теперь идем в свою убунту которая в wsl кружится и делаем финальный маунт:
mount -t ext4 /dev/sdd1 /mnt/sdd
Папку /mnt/sdd нужно создать ручками. А раздел диска (sdd1) подсмотреть командой blkid. Всё, usb винт успешно примонтирован в wsl убунты, файлы доступны. Теперь их можно копировать на ntfs и радоваться. 400 гигов с ext4 на ntfs копировалось 3 часа. Хуй знает на сколько я изобрел велосипед, но поставленную задачку решил без всяких парагонов и прочего внешнего софта. ЗБС! tags: #linux #windows — 🔔 @bashdays➡️ @gitgate

💣 А ты справишься с тестом по Kubernetes? 🏆 Пройди тест из 15 вопросов, проверь свой уровень знаний и получи скидку на онла
💣 А ты справишься с тестом по Kubernetes? 🏆 Пройди тест из 15 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Инфраструктурная платформа на основе Kubernetes» от OTUS! Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене! И еще дарим промокод Kuber_5 🎫 Курс можно приобрести в рассрочку 🔴 Пройти тест и забрать скидку: https://vk.cc/cIZHDY Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Порой при копипасте, например конфигов, в mcedit возникает такая ситуёвина как на первом скрине выше. ㅤ То есть конфиг вставл
+1
Порой при копипасте, например конфигов, в mcedit возникает такая ситуёвина как на первом скрине выше. То есть конфиг вставляется какой-то ебучей лесенкой. Что интересно, на разных дистрибутивах работает по-разному. Где-то все заебись, где-то совсем не заебись.
Тут выручает конечно же vim, в него такие штуки вставляются без проблем и без ебучих лесенок.
Но для фанатов mc это боль, сидишь потом эти вонючие пробелы-табы удаляешь, чтобы хоть как-то быть ближе к кодстайлу. И знаешь — это можно быстренько пофиксить! Открываешь mcedit, нажимаешь F9, переходишь во вкладку Options → General, а дальше снимаешь галочку с пункта: Return does autoindent.
Опция Return does autoindent в mcedit автоматически добавляет отступ на новую строку, основываясь на предыдущей.
Всё блядь! Лесенке пришла песда! Теперь любые конфиги залетаю в mcedit как по маслу. Как скопировал, так и вставилось. Иногда всё проще, чем кажется! Изучай! tags: #linux #bugfix — 🔔 @bashdays➡️ @gitgate

SuperHardio Вrothers*. Часть 3: Найти лису и обезвредить В этой серии боремся с уязвимостями платформы для совместной разрабо
SuperHardio Вrothers*. Часть 3: Найти лису и обезвредить В этой серии боремся с уязвимостями платформы для совместной разработки GitLab - усложняем злоумышленникам путь к платформе и уменьшаем поверхность атак на инфраструктуру. А также: — Обсудим популярность GitLab и архитектуру конфигураций платформы, — Поговорим о недопустимых событиях и параметрах безопасности, — Разберемся, с какими проблемами безопасности можно столкнуться при внедрении, настройке и масштабировании, — Построим лабиринт для хакера: разберем методы харденинга GitLab и лучшие практики безопасности платформы. Регистрируйтесь и присоединяйтесь к вебинару 4 марта в 17:00 МСК * SuperHardio Вrothers — герои-эксперты харденинга

Щас бы яблочко куснуть, выпить пива и уснуть На повестке сегодня проект PDFLinux. Если коротко, то вот тебе pdf файл, открой его в браузере (на базе Chromium, Firefox) и у тебя загрузится Linux. Нихуя се! А как так? В PDF файлах обычно размещаются статические документы, но также у pdf формата есть поддержка javascript. Дада, тот самый, который: 1+1=11. Вот javascript и позволяет всё это проделать, но конечно же с ограничениями.
Помню в Adobe Acrobat там вот полная поддержка js была, вот это прям была кладезь для экспериментов.
Проект основан на эмуляторе RISC-V. Запуск в браузере осуществляется через движок PDFium. А чтобы потыкать в интерактивном режиме, есть виртуальная клавиатура. Понятно дело это говнище безбожно тормозит, браузерные ограничения и т.п, но концепт прикольный.
Пентестеры, берите на вооружение, возможно замутите свою pdf’ку, но уже с полезной нагрузкой. Уточнение — с полезной, а не деструктивной, у нас не инкубатор черношляпых.
Разработчик кстати и Doom запихал в PDF, можно погонять тут. Исходники и инструкции по сборке доступны в публичной репе на гитхабе. Посмотри, мож придумаешь где применить. tags: #linux #security — 🔔 @bashdays➡️ @gitgate

🌐 Хотите разобраться, как работает передача IP-пакетов и научиться управлять трафиком в L2 и L3 сетях? 📅 На открытом уроке
🌐 Хотите разобраться, как работает передача IP-пакетов и научиться управлять трафиком в L2 и L3 сетях? 📅 На открытом уроке 26 февраля в 20:00 мск мы разберем ключевые принципы маршрутизации и коммутации, а также покажем, как это устроено на практике. Вы узнаете: - Как происходит форвардинг IP-пакетов в L2 и L3 - Как правильно настраивать сетевые сегменты - Как избежать типичных ошибок в маршрутизации ✨ Записывайтесь на вебинар и получите скидку на большое обучение «Network Engineer»: https://vk.cc/cITEFA Не упустите возможность улучшить свои навыки в сетевых технологиях! 💻 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Service или Systemctl? Каждый стартует или стопает процессы как привык. Во времена динозавров когда еще не существовало systemd, всё сводилось к командам:
service apache restart
Сейчас мир изменился, появился systemd, но привычки остались прежними. Теперь сервисами рекомендуется управлять через systemctl. Но какая в хуй разница как управлять сервисам? И service и systemctl выполняют по сути одно и тоже и ты по итогу получаешь ожидаемый результат. На самом деле сейчас команда service это обёртка вокруг systemctl. Давай убедимся:
strace -f service nginx restart 2>&1 | grep execve
По итогу ты получишь:
execve("/usr/bin/systemctl", ["systemctl", "restart", "nginx.service"])
То есть service обратился к systemctl и произвел перезапуск nginx. А если глянуть исходник service:
cat /usr/sbin/service
То ты увидишь обычный bash скрипт в котором и происходит вся эта магия. Если система использует SysVinit или Upstart (например, старые версии Debian, CentOS 6, Ubuntu 14.04), то service будет работать напрямую со скриптами /etc/init.d/. По бест-практикам старайся использовать systemctl. Но опять же service никто не запретит тебе использовать. Хотя когда молодые ребята видят как ты вводишь service, у них разрывает жопу и ты автоматически присваиваешь себя к престарелым скуфам. Как это делаю я? И так и сяк, мне вообще похуй, главное достигнут ожидаемый результат. Кроме systemctl и service есть такие штуки для управления процессами:
/etc/init.d/nginx restart rc-service nginx restart sv restart nginx s6-rc -d change nginx supervisorctl restart nginx
А чтобы проверить какая система инициализации у тебя, вот тебе пиздатая команда:
ps -p 1 -o comm=
Вот и вся наука. А как ты рулишь сервисами? Как скуф или как современный молодой человек? tags: #linux #debug #strace — 🔔 @bashdays➡️ @gitgate

Крутая программа для тех, кто уже работает с Linux и хочет погрузиться DevOps. В двух словах: программа на 2 месяца, ты учишь
Крутая программа для тех, кто уже работает с Linux и хочет погрузиться DevOps. В двух словах: программа на 2 месяца, ты учишься, тебе еще и платят. Начинка: начинающий и продвинутый курс по Linux, погружение в DevOps. Обучение с практикой, лабораторными и под контролем экспертов из K2 Сloud. Подробнее можно узнать на сайте

Что делать если я проебал приватный ssh ключ? Самое главное не ссать! Если ты рядовой разработчик/qa/cto/шлюха, напиши своему девопс инженеру чтобы прописал новый публичный ключик. Это нужно сделать обязательно через таску никаких блядь личек. Чтобы потом можно было прикрыть свою жопу и всё свалить на безответственных сотрудников, которые штаны просиживают и блокируют работу команды. Пусть знают с кем связались — бабуины прямоходящие! 🙈
Человек как меч, либо делает свою работу либо тупой.
Тебя конечно же проклянут, но спустя какое-то время ключик пропишут. Доступ к серверам восстановлен. Профит чо! Это прям идеальный исход событий. Но если ты и есть девопс инженер да еще и один единственный в команде, то у тебя бааальшие проблемы! Пеню, все решаемо, напомню — не ссать! Варианты решения: ➡️ Вариант №1 Если ты осел и у тебя все еще включен доступ по паролю, то зайди на сервер по паролю. Но в 99999999% ты пароль не записал, либо просто его не знаешь/проебал. Но опять же решаемо, если у тебя есть доступ в панель управления серверами, ты можешь в пару кликов через веб-морду провайдера задать новый пароль. У Селектела и AEZA такая возможность есть. Но с этим паролем ты сможешь войти только через KVM, то есть опять же через веб морду. Потому что если ты в ssh конфиге (на сервере) отключил вход по паролю, то через ssh root@server у тебя нихуя не выйдет. Через KVM сразу можешь отредачить ssh конфиг и включить доступ по паролю, потом комфортно подключиться к серверу так ssh root@server и добавить свои новые ключики. Это самый трушный вариант, но работает не всегда + иногда требуется перезагрузка сервера, а это не допустимо.
Про ssh ключи, конфиги и прочее читай по тегу #linuxfactory
➡️ Вариант №2 Если у тебя есть какие-то другие доступы к серверу, например у тебя там поднят IPMI, VNC. Тут все просто, заходим, прописываем новые ключики, меняем конфиги, восстанавливаем доступы. ➡️ Вариант №3 Вспомни, возможно у тебя есть другой юзер который прописан в sudoers, не обязательно это может быть твой второй юзер. Возможно ты выдавал доступы разработчикам и т.п. Обратись к ним, если ты не мудак они зайдут на сервер и починят тебя. Но если ты мудак — поехали дальше. ➡️ Вариант №4 У многих две рабочих машины, у меня например основной писюк где я видосы для девопсины клепаю и параллельно решаю вопросы по ssh. Соответственно на писюке у меня есть приватный ключ. Но также у меня есть и ноут (нет, не в тот что кот насрал), на ноуте я обычно работаю в сортире и созваниваюсь в постельке. На ноуте у меня тоже есть этот приватный ключик. А еще у меня есть внешний диск, когда с ноута на ноут переезжал то бекапы делал, там тоже этот приватный ключик наверняка лежит. Суть такая — найти бекап этого ключа, всяко он у тебя где-то продублирован. Выйди на солнышко/снег/дождик, покури, подумай. бекапы порой делаются не осознанно. ➡️ Вариант №5 Рекавери режим. Нужен физический доступ к серверу, загружаешься, монтируешь диск, меняешь конфиги, прописываешь новые ключи. Физический доступ к сервакам обычно редкость, но опять же в Селектеле я такое делал много раз через веб-морду, там прям есть пунктик — Rescue Mode. Про аезу не скажу (аеза нас читает, пусть прокомментирует), пока не приходилось с этим сталкиваться. Минус — придется перезагружать сервер. Будет даун тайм и тебя за это очень быстро выебут (если это какойнить прод). ➡️ Вариант №6 У тебя есть какойнить Ansible который хуячит под крылом AWX, у ансибла нативный рут, либо юзер который может сделать become и выполнить таски от рута. Это прям облегчает задачу. Не нужно перезагружать сервак, прогнал плейбук и был таков.
Как говорится — Хуем в ладошку и вперёд в путь дорожку!
🙃 Если хочешь проникнуться Ансиблом/Гитлабом/Докером — велком в наш пантеон. ➡️ Вариант №7 ➡️ А это твой вариант, напиши про него в комменты. Я бы мог еще продолжать, но у телеги лимиты на количество символов. Так что пошли в комменты, попиздим и найдем серебряную пульку. Спасибо за внимание и хороших предстоящих выходных! tags: #рабочиебудни #linux — 🔔 @bashdays➡️ @gitgate

На GitVerse стала доступна среда разработки GigaIDE Cloud со встроенным AI-ассистентом СберТех представил российскую облачную
На GitVerse стала доступна среда разработки GigaIDE Cloud со встроенным AI-ассистентом СберТех представил российскую облачную среду для разработки GigaIDE Cloud, встроенную в платформу для работы с исходным кодом GitVerse. Среда обеспечивает редактирование, отладку, проверку и совместную работу с кодом, а также постоянный и безопасный доступ к предварительно настроенным рабочим пространствам разработки. GigaIDE Cloud доступна из браузера и позволяет вести разработку в удобном режиме с различных устройств вне зависимости от их производительности. Также пользователи получили доступ к обновлённой версии интегрированной среды разработки GigaIDE Desktop, которую можно скачать на GitVerse. Десктопная версия стала стабильнее и производительнее, а еще добавились новые инструменты для анализа и навигации по элементам крупнейших фреймворков для Java. В обе версии среды разработки интегрирован AI-ассистент разработчика GigaCode, который автоматизирует рутинные процессы и помогает программистам в реальном времени. Начать пользоваться GigaIDE Cloud — по ссылке

Первые восемь раз надежда все еще не была потеряна я без надежды убит тоской навылет прострелен потому что я надеялся а не бы
Первые восемь раз надежда все еще не была потеряна
я без надежды убит тоской навылет прострелен потому что я надеялся а не был уверен...
А вечерком будем думать в комментах (пост в отложке) над ситуацией — всё пропало, я проебал потерял приватный ssh ключ. tags: #рабочиебудни — 🔔 @bashdays➡️ @gitgate

Заголовок для привлечения внимания А сегодня мы с тобой будем проверять на bash существует ли git репозиторий и есть ли к нему доступ.
В основе лежит команда git ls-remote, которая получает список ссылок (references) из удалённого репозитория. Она показывает ветки, теги и другие указатели (refs), которые есть в репозитории, без необходимости клонирования или загрузки самого репозитория.
Сразу к делу:
#!/bin/bash

# Проверяем, что указан репозиторий
if [ -z "$1" ]; then
  echo "Ошибка: Необходимо указать адрес репозитория."
  echo "Использование: $0 <адрес_репозитория>"
  exit 1
fi

REPO_URL="$1"

# Выполняем команду git ls-remote для проверки доступа
if git -q ls-remote "$REPO_URL" &> /dev/null; then
  echo "Репозиторий доступен: $REPO_URL"
else
  echo "Ошибка: Репозиторий не существует или нет доступа: $REPO_URL"
  exit 1
fi
Переменная окружения GIT_TERMINAL_PROMPT=0 отключает любые запросы ввода имени пользователя и пароля. То есть если репа запросит логин/пароль, то вернется ошибка (без ожидания ввода). Чмодим на +x и запускаем:
./git-check.sh https://github.com/bashdays/only.git

Репозиторий доступен: https://github.com/bashdays/only.git

./git-check.sh https://github.com/bashdays/zalupka.git

Ошибка: Репозиторий не существует или нет доступа: https://github.com/bashdays/zalupka.git
Есть минусы, скрипт работает только с https ссылками (открытые репозитории), со ссылками вида git@ оно вернет ошибку если у тебя не будет добавлен в ssh ключ. Обработать этот эксепшен можно как-то так:
#!/bin/bash

# Проверяем, что указан репозиторий
if [ -z "$1" ]; then
  echo "Ошибка: Необходимо указать адрес репозитория."
  echo "Использование: $0 <адрес_репозитория>"
  exit 1
fi

REPO_URL="$1"

# Функция проверки доступа
check_repo_access() {
  local url="$1"
  
  # Проверяем репозиторий с помощью git ls-remote
  if git -q ls-remote "$url" &> /dev/null; then
    echo "Репозиторий доступен: $url"
    return 0
  else
    echo "Ошибка: Репозиторий не существует или нет доступа: $url"
    return 1
  fi
}

# Определяем, является ли URL SSH или HTTP/HTTPS
if [[ "$REPO_URL" == git@*:* ]]; then
  # Если SSH, проверяем доступ через SSH
  ssh_host=$(echo "$REPO_URL" | awk -F':' '{print $1}' | awk -F'@' '{print $2}')
  if ssh -T "$ssh_host" &> /dev/null; then
    check_repo_access "$REPO_URL"
  else
    echo "Ошибка: SSH-доступ к $ssh_host не настроен или нет прав."
    exit 1
  fi
else
  # Для HTTP/HTTPS проверяем репозиторий
  check_repo_access "$REPO_URL"
fi
Где применить решать тебе, можешь взять этот концепт за основу и что-то своё накидать. У меня кое-где в пайплайнах есть такие проверки, перед тем как делается git clone. Ну и еще есть парсер репозиториев, загоняешь ему список и он по нему проходится, мертвые репы пишет в файл. В общем обычная рутина. Я принес, показал, а ты уже сам решай надо оно тебе или нет. tags: #bash #git — 🔔 @bashdays➡️ @gitgate

🚀 Инженерная команда нового облака МТС Web Services продолжает рассказывать о разработке сервисов платформы. В третьем выпус
🚀 Инженерная команда нового облака МТС Web Services продолжает рассказывать о разработке сервисов платформы. В третьем выпуске проекта Building the Cloud поговорим про новый Object Storage. 🔑 Вы узнаете: ● какую архитектуру выбрали для нашего S3-совместимого хранилища данных; ● как обеспечиваем масштабируемость и надёжность хранения; ● как мы реализовали слои данных и метаданных; ● как работает асинхронная репликация данных между дата-центрами, и как используем erasure coding 💡 Для тех, кто пропустил первые выпуски: мы уже рассказали о создании сервисов Compute и IAM. Посмотреть можно здесь. Регистрируйтесь и задайте свой вопрос техлиду команды Object Storage нового облака в прямом эфире. За лучший вопрос дарим мерч. 📅 Дата: 3 марта, 11:00 🌐 Регистрация