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 735 подписчиков, занимая 5 660 место в категории Технологии и приложения и 28 062 место в регионе Россия.

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

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

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

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

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

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

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

23 735
Подписчики
-224 часа
-347 дней
-15430 день
Архив постов
Вот те еще одна забавная игрушка — про компьютерного мастера, который за установку каждого драйвера берет по 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 🌐 Регистрация

По умолчанию папка для временных файлов расположена в корне /tmp. В некоторых дистрибах эта папка монтируется в память. Но если оперативки мало, а чья-то софтина активно пишет в нее, есть смысл перенести папку /tmp куда-нибудь на диск. Ну а если папка /tmp лежит на корневом разделе, а на разделе нет места, то это тоже проблема. Самый распространенный и быстрый вариант: 1. Смонтировать новый диск в /mnt/tmp 2. Прокинуть симлинкой /mnt/tmp → /tmp Но в некоторых случаях софт упоротый и скажет — я ебал писать в симлинку, давай мне нормальный локейшен в /tmp.
Упоротый софт в моем случае была некая многопоточная конвертилка pdf файлов, которая раздувала папку tmp до — я ебёшь! И пока она не сделает свои дела, за собой не уберет.
По опыту скажу — софт никто править не будет, а попросят инженера вбить костыль. Так быстрее и не нужно тратить время разработчика. Да! Так и живем в больших интерпрайзах. Поэтому изобретают подобный велосипед. Монтируют новый диск в /mnt/tmp
sudo mkdir /mnt/tmp
sudo chmod 1777 /mnt/tmp
Права 1777 важны для временных директорий, чтобы все пользователи могли создавать файлы, но не удаляли чужие. Единичка это — стинкибит.
Создаем файл и пишем в него: /etc/systemd/system/mnt-tmp.mount
[Unit]
Description=Mount tmpfs on /mnt/tmp

[Mount]
What=tmpfs
Where=/mnt/tmp
Type=tmpfs
Options=mode=1777,size=10G

[Install]
WantedBy=multi-user.target
Название файла не может быть любое, у нас есть путь /mnt/tmp в этом случае файл называем mnt-tmp.mount. Если было бы /mnt/tmp/bashdays, то файл нам нужно обозвать mnt-tmp-bashdays.mount.
Ага, вот такие нюансы, иначе оно грязно выругается и нассыт тебе в глаз. По юниту все интуитивно понятно, расписывать не буду. А потом, как обычно:
sudo systemctl daemon-reload
sudo systemctl enable mnt-tmp.mount
sudo systemctl start mnt-tmp.mount
Да, чтобы процессы использовали новый каталог, в файле /etc/environment указываем переменную.
TMPDIR=/mnt/tmp
Не забываем применить:
source /etc/environment
Проверяем и зачищаем старье:
echo $TMPDIR
df -h /mnt/tmp
sudo rm -rf /tmp/*
Всё, дело в шляпе. Аналогично делается с папкой логов, но там есть свои нюансы, попозже расскажу. tags: #linux — 🔔 @bashdays➡️ @gitgate

Как развернуть приложение в кластере Managed Kubernetes on Bare Metal 20 февраля в 16:00 Selectel проведет воркшоп, где покаж
Как развернуть приложение в кластере Managed Kubernetes on Bare Metal   20 февраля в 16:00 Selectel проведет воркшоп, где покажет, как с помощью готового сервиса Managed Kubernetes сделать выделенные серверы частью экосистемы облачной платформы. Обсудим лучшие практики использования нового сервиса Selectel Managed Kubernetes on Bare Metal и его преимущества: изоляцию ресурсов, повышение производительности и сокращение расходов на IT-инфраструктуру до 40%. Покажем процесс создания и работы с кластером Kubernetes на выделенных серверах. Отдельно рассмотрим интеграцию продукта с такими облачными сервисами как:  Container Registry, Балансировщик нагрузки и Базами данных.   Воркшоп подойдет: DevOps-  и SRE-инженерам, разработчикам, системным администраторам, архитекторам, руководителям IT-проектов и всем, кто работает с Kubernetes   Смотрите программу и регистрируйтесь на воркшоп по ссылке   Реклама. АО «Селектел», ИНН 7810962785, erid: 2VtzqvhCJ5a

Как обычно люди используют screen:
screen
cd /usr/local/sbin
./db_import.sh
И потом закрывают терминал, а скрипт db_import.sh продолжает где-то там шуршать и делать свои делишки. Потом возвращаются спустя время и делают:
screen -list

3393.pts-3.dev (Attached)

screen -x 3393.pts-3.dev

или

screen -r 3393.pts-3.dev
Убеждаются что скрипт завершил свою работу, ну и выходят, порой даже не закрывая screen сессию (3393.pts-3.dev). Чем отличается -r и -x
-r (resume) = подключаемся к сессии которая в данный момент отсоединена, то есть к ней не подключены другие юзеры. -x (multi-user mode) = подключаемся к сессии к которой уже кто-то подключен, то есть несколько пользователей могут мешать друг другу в рамках одной сессии.
Подход нормальный, никаких тебе ключей запоминать не нужно и т.п. Но есть такой вариант:
screen -dmS имя_сессии bash /путь/к/скрипту.sh
dmS это параметры для запуска screen в фоновом режиме (detached mode) с именем сессии. d = запускает сессию в отключенном (detached) режиме. m = создаёт новую сессию, даже если она существует. S = имя сессии
Команда выше создаст сессию screen и запустить скрипт в фоновом режиме. А самое главное отпустит терминал и ты сможешь дальше в нём работать. И самая киллер-фича — после отработки скрипта, screen сессия автоматически закроется и после выполнения команды: screen -list список будет пуст. Еще можно так:
screen -X -S "script0$scriptID" stuff "^C"
script0$scriptID = указывает на сессию с именем, здесь $scriptID это переменная, содержащая идентификатор или значение, которое будет подставлено в команду. stuff = передаёт текст или последовательность символов в сессию screen, как если бы их ввел пользователь.
На закуску. Когда ты подключился к сессии и у тебя там еще работает скрипт, как не закрывая терминал вернуться в интерактивный режим? Я раньше просто закрывал окно с терминалом и сейчас вижу что много кто так делает. Все просто, прожимаем CTRL+A и затем «d». Ты отключаешься от сессии, переходишь в интерактивный режим с терминалом, а скрипт продолжает шуршать в фоне. А как посмотреть выхлоп скрипта если сессия закрыта? Добавь в свой скрипт логирование и обработку экспешенов, пусть оно в файлик пишет результаты своей работы. Нахуй тебе через screen потом ебаться все это просматривать. Буквально вчера увидел как инженер с утра запустил распаковку базы на сервере, через пару часов у него мигнул интернет, ssh сессия с сервером превратилась в тыкву! Начинайте сначала! Если запускаешь на сервере что-то очень долгое и не хочешь быть к этому привязан, используй screen! Это мастхев для подобных процедур. По крайней мере сохранишь время и нервы. Вот и вся наука. Изучай! tags: #linux #utilites #bash — 🔔 @bashdays➡️ @gitgate

Посвящаю тебя в Куборыцари! 🐈⚔️ Чтобы разработчику по-настоящему освоить Kubernetes, одних теоретических знаний мало. В идеа
Посвящаю тебя в Куборыцари! 🐈⚔️ Чтобы разработчику по-настоящему освоить Kubernetes, одних теоретических знаний мало. В идеале — найти наставника, который покажет реальные рабочие задачи и научит их решать. Тогда никакие переезды на кубы не страшны! Пока вы в поисках такого человека, другие уже проходят «Kubernetes для разработчиков»: разрабатывают приложение под k8s и запускают его в кластере. Как они этому учатся? 👉 80% времени — это практика, реальные задачи и работа со стендами. 👉 Постоянная поддержка — консультации экспертов на встречах и в общем чате. 👉 Финальный этап — сертификация, подтверждающая твои навыки. Может, и вам пойти этим путём? ➡️ Старт — 3 марта. ➡️Забирайте место по ссылке Реклама ООО «Слёрм» ИНН 3652901451

🔥 Скрытые данные в эмодзи/символах Тут некий деятель Paul Butler, запиздярил штуку, которая позволяет при помощи последовательностей ZWJ (Zero Width Joiner) закодировать в один эмодзи неограниченный объём данных. Да чо далеко ходить, идем сюды, выбираем эмодзи или букву алфавита, пишем текст который нужно спрятать и готово. Копируем получившийся эмодзи/символ и отправляем по назначению. На этом же ресурсе можно расшифровать, то что получилось.
Unicode представляет текст как последовательность кодовых точек — чисел, которым присвоено определённое значение. Каждая кодовая точка записывается в формате U+XXXX, где XXXX — это шестнадцатеричное число в верхнем регистре. Для латинских символов каждой кодовой точке соответствует конкретный символ на экране. Например, кодовая точка U+0067 обозначает букву "g". Однако в некоторых системах письма один видимый символ может состоять из нескольких кодовых точек. Например, символ "की" в деванагари формируется из кодовых точек U+0915 и U+0940, соединённых вместе.
Где можно применить? Ну конечно же поиграться, изобрести что-то своё, попентестить формочки на отказ в ослуживании, либо вставлять метки «жучки», чтобы в случае утечки данных отследить отправителя и получателя. Тут всё зависит от твоих потребностей и креативных идей. В телеге кстати нормально работает, но при условии если эмодзи отправлен без дополнительного текста и т.п. В других мессенджерах не проверял.
В комменты закину такой смайлик на потыкать. Перешли себе в Избранное и от туда уже правой мышкой - копировать текст.
🅰️🅰️ ➡️ Технический подробности глянуть тут. ➡️ Исходники кодера/декодера на гитхабе. Надо на Bash такую пепяку сделать, ради прикола. tags: #security #crypt — 🔔 @bashdays➡️ @gitgate