fa
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

رفتن به کانال در Telegram

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

نمایش بیشتر

📈 تحلیل کانال تلگرام Bash Days | Linux | DevOps

کانال Bash Days | Linux | DevOps (@bashdays) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 23 803 مشترک است و جایگاه 5 708 را در دسته فناوری و برنامه‌ها و رتبه 28 124 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 23 803 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 16 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -201 و در ۲۴ ساعت گذشته برابر -10 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 20.40% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 11.53% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 4 855 بازدید دریافت می‌کند. در اولین روز معمولاً 2 744 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 17 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند bashdays, linux, bash, docker, скрипт تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 17 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

23 803
مشترکین
-1024 ساعت
-287 روز
-20130 روز
آرشیو پست ها
🔥Кто на новенького? В реестре ФСТЭК пополнение: платформа серверной виртуализации 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 🌐 Регистрация