es
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Ir al canal en Telegram

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

Mostrar más

📈 Análisis del canal de Telegram Bash Days | Linux | DevOps

El canal Bash Days | Linux | DevOps (@bashdays) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 23 794 suscriptores, ocupando la posición 5 701 en la categoría Tecnologías y Aplicaciones y el puesto 28 128 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 23 794 suscriptores.

Según los últimos datos del 17 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -202, y en las últimas 24 horas de -5, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 21.91%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 12.48% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 5 213 visualizaciones. En el primer día suele acumular 2 971 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 21.
  • Intereses temáticos: El contenido se centra en temas clave como bashdays, linux, bash, docker, скрипт.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 18 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

23 794
Suscriptores
-524 horas
-277 días
-20230 días
Archivo de publicaciones
Не хватает практики и знаний для работы с K8s? ➡️ Поможем DevOpsам систематизировать знания и освоить навыки работы с кластер
Не хватает практики и знаний для работы с K8s? ➡️ Поможем DevOpsам систематизировать знания и освоить навыки работы с кластером ⚡️А на бонусном курсе «Основы ИБ» научим обеспечивать безопасность на самых начальных этапах
Курс «Kubernetes База» ➕ Видеокурс «Основы ИБ»«Ansible.Основы» и «Docker.Основы» 70 000 ₽ (вместо 105000 ₽) Промокод на скидку в боте до 11 октября
⭐️ОБНОВИЛИ ВЕСЬ КУРС «K8s База» Чему научим: ✅ Основам работы с K8s, системой автоматизации развертывания, масштабирования и управления приложениями в контейнерах. ✅ Запускать кластер, работать с базовыми абстракциями и подключать дополнительные компоненты ✅ Запускать приложения в кластере, понимать принципы работы сети и настраивать CI/CD пайпланы ➕ Ориентироваться во всех доменах информационной безопасности ➕ Выстраивать безопасную инфраструктуру и разработку Старт потока 7 октября ➡️ 6 недель обучения ➡️ 63 часа практики ➡️ 5 встреч со спикерами 👉 Промокод и подробнее о курсе в боте Реклама ООО «Слёрм» ИНН 3652901451 erid:2VtzqumNrFb

С пятницей ребят! Недавно пришло письмо от мейл.ру мол у вас SPF запись пиздец хуёвая.
SPF-запись домена https://bashdays.ru задана таким образом, что для ее проверки необходимо 36 DNS-запросов из 10 допустимых.
Я человек простой — вижу хуйню, прохожу мимо. Но тут пройти не смог, какой-то животный интерес возник. Что это еще за 10 допустимых запросов? Проресерчив тему, нашел сервис SPF Surveyor который как раз анализирует текущую SPF запись и выводит результат. ➡️ Рекомендую добавить сервис в закладки, для дебага самое оно! От результата я знатно прихуел, вот моя SPF:
v=spf1 mx a include:spf.gca.to include:_spf.google.com include:spf.smtp.bz include:mindbox.ru ~all
И результат: 36/10 И чо мне с этим делать? Для начала убрал mx и a, по итогу получил результат: 18/10. Уже лучше, поехали дальше оптимизировать! А дальше оптимизировать нечего! По крайней мере я нихуя с этим больше не смог ничего сделать. Выкидывать инклуды нельзя, тупо нет лишнего. Перегуглил… нииихуууя! И как это дерьмище сокращать? Если каждый инклуд содержит в себе еще сабинклуды. Сука! Короче пост не про решение проблемы, а про сервис SPF Surveyor. Ну а если ты знаешь как этого босса проходить (мож ты гуру почтовых серверов, а мы и не знали), напиши пару строчек в комменты, обещаю админ чатика за технические коменты не забанит. Такие дела… tags: #рабочиебудни — 🔔 @bashdays➡️ @gitgate

❓ Хотите автоматизировать управление конфигурациями серверов и приложений? Ждем вас на открытом вебинаре , где мы разберем: -
❓ Хотите автоматизировать управление конфигурациями серверов и приложений? Ждем вас на открытом вебинаре , где мы разберем: - основные концепции Salt: как работает Salt, что такое состояния и модули; - как использовать Salt для автоматизации задач: установка ПО, настройка сервисов и т.д.; - примеры практического применения Salt. 👉👉👉 Регистрируйтесь прямо сейчас: https://otus.pw/rb1D/ 📅 Дата и время: 7 октября в 20:00 мск 📌 Урок для DevOps-инженеров, системных администраторов и разработчиков, которым необходимо настроить среду разработки и развернуть свои приложения. Встречаемся в преддверии старта курса «Инфраструктура высоконагруженных систем». Все участники вебинара получат специальную цену на обучение! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Тема вроде не айтишная, а вроде и айтишная, сделал я короче МРТ, по итогу приобрел грыжу и протрузию поясничного отдела. Вас много и полюбому кто-то с этим уже столкнулся и живет в клубе по интересам. Вопрос — как эту хуйню захотфиксить? Мидокалм, пластыри и т.п. гавно это понятно. В ремиссии чо делаете? ЛФК из чего состоит? Я ебать попробовал по официальному мануалу от невролога как котик спину выгибать и вгибать на корачках, через полчаса с температурой слег )) Слышал что нужно укреплять ноги и жопу, но тут баш скрипт не накинешь, каким хером это укреплять? Приседать? Или что-то есть более эффективное? В спорт-зал не пойду, в лесу его нет. Короче у меня одни вопросы, посоветоваться кроме как с вами мне не с кем. Гуглёж выдает тонны воды, а нужна проверенная база ) Если располагаешь сокровенными знаниями, поделись пожалуйста в комментах. Я этот вопрос конечно сам заресерчу, но у меня уйдёт на это дохера времени и неправильных вариантов, ну ты и сам понимаешь. Короче коллеги-калеки поделитесь инвайтом в ваш клуб и методичкой чо делать, спасибо ) Всем отвечу уже завтра, пойду плакать. UPD: Всем кто дал дельные советы — Спасибо! А кто хочет еще что-то добавить то велком сюда. tags: #рабочиебудни — 🔔 @bashdays➡️ @gitgate

Принцесса для снятия стресса Привет. Когда ты создаешь новый docker контейнер, то по умолчанию этому контейнеру назначается имя. Откуда оно берется?
Docker генерирует случайные имена для контейнеров, используя сочетание прилагательных и фамилий известных учёных или инженеров.
<прилагательное><фамилия> и всегда написаны в нижнем регистре. Например:
quirky_pare
agitated_turing
furious_heisenberg
romantic_curie
Окей. После некоторого ресёрча оказалось, что 90% докера написано на Golang. Вот это поворот! Порывшись еще немного, нашел функцию по генерации этих имен для контейнеров. ➡️ Посмотреть можешь тут. Мотаем этот код в самый низ и видим забавную хуйню:
if name == "boring_wozniak" /* Steve Wozniak is not boring */ {
    goto begin
  }
Этакая пасхалочка. Но зачем все эти имена? Да чтобы удобнее было манипулировать контейнерами, вот и вся идея этой возни. Ну и на закуску адаптируем полученные знания на bash, генератор может выглядеть так:
#!/bin/bash

adjectives=(
  "adoring" "agitated" "amazing" "angry" "awesome" "blissful" "bold"
  "boring" "brave" "clever" "cool" "compassionate" "competent" "crazy"
  "dazzling" "determined" "ecstatic" "elegant" "eloquent" "epic"
  "exciting" "fervent" "focused" "furious" "gallant" "gifted" "goofy"
  "gracious" "happy" "hardcore" "hopeful" "hungry" "infallible" "inspiring"
  "jolly" "jovial" "keen" "kind" "laughing" "loving" "magical"
  "mystifying" "naughty" "nervous" "nostalgic" "optimistic" "peaceful"
  "practical" "priceless" "quirky" "recursing" "relaxed" "reverent"
  "sad" "serene" "sharp" "silly" "sleepy" "stoic" "strange" "stupefied"
  "suspicious" "tender" "thirsty" "trusting" "unruffled" "vibrant"
  "vigilant" "wizardly" "wonderful" "youthful" "zealous" "zen"
)

scientists=(
  "albattani" "allen" "archimedes" "ardinghelli" "babbage" "bashdays" "banach"
  "banzai" "bardeen" "bartik" "bassi" "bell" "benz" "bhabha" "bhaskara"
  "blackwell" "bohr" "booth" "borg" "bose" "boyd" "brahmagupta" "brattain"
  "brown" "carson" "chandrasekhar" "colden" "cori" "cray" "curie"
  "darwin" "davinci" "dijkstra" "dubinsky" "easley" "einstein"
  "elion" "engelbart" "euclid" "euler" "fermat" "fermi" "feynman"
  "franklin" "galileo" "galois" "goldberg" "goodall" "hawking"
  "heisenberg" "hermann" "herschel" "hertz" "hodgkin" "hoover" "hopper"
  "hypatia" "joliot" "kalam" "keller" "kowalevski" "lalande" "leavitt"
  "lichterman" "liskov" "lovelace" "mayer" "mccarthy" "mcclintock"
  "mclean" "mcnulty" "meitner" "mendel" "mendeleev" "minsky" "mirzakhani"
  "moore" "napier" "newton" "nobel" "noether" "panini" "pare"
  "pasteur" "payne" "perlman" "pike" "poincare" "ptolemy" "raman"
  "ramanujan" "ride" "ritchie" "roentgen" "rosalind" "saha"
  "sammet" "shockley" "sinoussi" "stallman" "stonebraker" "swanson"
  "tesla" "thompson" "torvalds" "turing" "varahamihira" "visvesvaraya"
  "wilbur" "wiles" "williams" "wilson" "wing" "wozniak" "wright"
  "yonath"
)

generate_container_name() {
  local adjective="${adjectives[RANDOM % ${#adjectives[@]}]}"
  local scientist="${scientists[RANDOM % ${#scientists[@]}]}"
  echo "${adjective}_${scientist}"
}

count=${1:-10}
for ((i=1; i<=count; i++)); do
  generate_container_name
done
После запуска скрипта, на экран выведутся 10 случайных имен в стиле docker. Количество можешь гибко менять. Теперь ты в праве заполнить массивы своими данными и генерировать уникальные имена, например: pizdatiy_huy или ohuennaya_pizda. А потом использовать сразу в командах:
docker run --name $(bash script.sh) -d nginx
Есть еще такая штука:
alias dn='curl -s https://frightanic.com/goodies_content/docker-names.php'
Это выплюнет тебе подобное имя прям в консоли без скриптов и приседаний. А еще есть библиотека на питоне — codenamize, которая проворачивает тоже самое. Короче есть из чего выбрать. В общем пользуйся, прикручивай, изучай! tags: #linux #bash #docker — 🔔 @bashdays➡️ @gitgate

МТС приглашает DevOps-инженеров на митап True Tech DevOps 10 октября | 19:00 Офлайн в Москве | Онлайн Инженеры МТС и приглаше
МТС приглашает DevOps-инженеров на митап True Tech DevOps 10 октября | 19:00 Офлайн в Москве | Онлайн Инженеры МТС и приглашенные эксперты разберут кейсы использования Service Mesh. Обсудим, какими критериями следует руководствоваться при выборе инструментов, как проходит процесс опромышлевания решения, подводные камни и личный опыт. А еще разберемся с доставкой чувствительных данных в Kubernetes и проведением тренировок по устранению инцидентов. Для участия зарегистрируйся по ссылке.

Решился я тут по быстрому взгромоздить proxmox на пятую малину, благо есть решение — Pimox7. Мне обещали приключений на пару
Решился я тут по быстрому взгромоздить proxmox на пятую малину, благо есть решение — Pimox7. Мне обещали приключений на пару минут, но по итогу я был выебан в розовые очки. Прям мем, делаешь все по официальной документации, а получается хуй с маслом. Кто не в курсе:
Proxmox — это бесплатная платформа виртуализации, которая позволяет запускать на одном физическом сервере множество виртуальных машин и контейнеров. Она используется для создания и управления виртуальными средами.
Всё чего я добился с Pimox7:
The following packages have unmet dependencies:
 ceph-fuse : Depends: libfmt7 (>= 7.1.3+ds1) but it is not installable
 libpve-rs-perl : Depends: perlapi-5.32.1 but it is not installable
 libpve-u2f-server-perl : Depends: perlapi-5.32.1 but it is not installable
 librados2-perl : Depends: perlapi-5.32.1 but it is not installable
 lxc-pve : Depends: libgnutlsxx28 but it is not installable
 pve-cluster : Depends: perlapi-5.32.1 but it is not installable
 pve-qemu-kvm : Depends: liburing1 (>= 0.7) but it is not installable
Какой-то сука перл... Ну раз такое дело, надо решать! Фиксить скрипт Pimox7 я ебал, поэтому устроил анал-карнавал и зашел с черного хода. В телеге с разметкой беда, поэтому запилил свою «официальную документацию» в другом месте. Мож кому пригодится 👇 ➡️ Proxmox на Raspberry Pi 5 Хорошего тебе дня-вечера, увидимся! tags: #linux #рабочиебудни — 🔔 @bashdays➡️ @gitgate

🙂 Как эффективно и безболезненно внедрить DevSecOps? Positive Technologies выпустили в помощь общедоступную методологию внед
🙂 Как эффективно и безболезненно внедрить DevSecOps? Positive Technologies выпустили в помощь общедоступную методологию внедрения практик безопасной разработки — AppSec Table Top. 📖 Внутри — набор принципов и подходов, которые помогут выстроить AppSec-процессы с учетом интересов бизнеса, требований регуляторов и потребностей команд. В методологии учтена передовая экспертиза Positive Technologies в области application security, а также лучшие российские практики и зарубежные наработки. Скачивайте гайдлайн на сайте, а дальше... вы будете знать, что делать.

Здрасти. Давай сегодня соберем свой «мета-пакет». Что такое «мета-пакет»? Нууу… Например, я хочу разом поставить htop, git, rclone, mc и прочее. И чтобы не вводить команду на установку:
apt install htop git rclone mc
Я могу поставить один «мета-пакет», который будет содержать в себе все эти утилиты. Что-то из оперы Zver DVD, где нужный софт ставился сразу пачкой. Поехали тыкать палкой! Ставим зависимости и готовим окружение:
sudo apt-get install -y build-essential devscripts dh-make
Создаем структуру для «мета-пакета»:
cd /tmp
mkdir bashdays-soft
cd bashdays-soft
Создайте контрольные файлы пакета:
dh_make --native --single --yes -p bashdays-soft_1.0
Ключи: native — создаёт пакет без указания версии дистрибутива single — создаёт минимальную структуру -p my-metapackage_1.0 — имя пакета и версия (1.0) В ответ получаем выхлоп:
Maintainer Name : root
Email-Address : root@unknown
Date : Sun, 29 Sep 2024 03:58:22 +0000
Package Name : bashdays-soft
Version : 1.0
License : gpl3
Package Type : single
Открываем файл на редактирование:
vim debian/control
И хуячим описание для «мета-пакета»:
Source: bashdays-soft
Section: misc
Priority: optional
Maintainer: Roman Shubin <hello@devopsina.ru>
Standards-Version: 4.5.0
Build-Depends: debhelper-compat (= 11)

Package: bashdays-soft
Architecture: all
Depends: mc, htop, curl, git
Description: My own Installer
В секции Depends перечислены все пакеты, которые должны быть установлены вместе с мета-пакетом. У меня это mc, htop, curl, git. Параметр Architecture: all указывает, что пакет не зависит от архитектуры. Собираем «мета-пакет»:
debuild -us -uc
Ключи -us и -uc отключают подпись пакета. Смотрим что получилось:
ls -la ..
И видим:
bashdays-soft_1.0.tar.xz
bashdays-soft_1.0_all.deb
Наш «мета-пакет готов». Давай теперь его установим и посмотрим что получилось:
sudo apt install -yf ../bashdays-soft_1.0_all.deb
Проверяем и видим что произошла установка всех пакетов которые я описал в секции Depends в файле debian/control. ЗБС! Проверить можно так:
dpkg -l mc htop curl git
В ответ получишь красивую табличку и информацию о пакетах. Теперь можешь приготовить свой собственный «мета-пакет» со всем необходимым и быстренько раскатывать его на новые сервера. Темка достаточно интересная, поэтому рекомендую потыкать. Пользуйтесь! tags: #linux — 🔔 @bashdays➡️ @gitgate

Открытый вебинар «5 ошибок администрирования K8s» от Слёрм. Ошибка № 1. Ставить Kubernetes Ошибка № 2,3,4,5. Пытаться его нас
Открытый вебинар «5 ошибок администрирования K8s» от Слёрм. Ошибка № 1. Ставить Kubernetes Ошибка № 2,3,4,5. Пытаться его настроить... Куб либо всегда говорит правду, либо всегда лжет, но вы никогда об этом не знаете… Как с этим работать? Обсудим на вебинаре 2 октября.
🔵 ImagePullPolicy и старые имейджи в кубе Вы сказали кубу залить новую версию приложения, он этого не сделал, но сказал, что сделал 🔵 PVC и StatefulSet для Stateful приложений Или как потерять все данные из своей БД 🔵 CoreDNS Overload Узкие места в кубах: медленные межсерверные взаимодействия при большом трафике 🔵 Kubelet memory overcommit on the node Или как дестабилизировать куб на своих нодах 🔵 CPU limits Продолжаем наступать на эти грабли: как неэффективно управлять ресурсами приложения
⭐️Бонус от Слёрм: На вебинаре подарим одному участнику место на курсе «K8s База» ⚡️пикеры: - Кирилл Борисов. SRE в VK - Всеволод Севостьянов. Staff engineer в Lokalise ➡️Когда вебинар: 2 октября в 17:00 мск ➡️Регистрация через бот Реклама ООО «Слёрм» ИНН 3652901451

У меня возникла проблема. Мне нужно переконфигурировать сеть на железном сервере, который находится в другом городе. И командировка туда займет пару дней. Проблема усугубляется тем, что на сервере нет ipmi или аналогов, кроме того, в окружении нет админа. Поэтому конфигурировать сеть нужно по ssh. Надеюсь никому здесь не нужно объяснять, чем это грозит. В общем, прикинул я хрен к заднице, что можно сделать и написал скрипт. Скрипт поможет в случае чего восстановить конфигурацию, в случае моего косяка. Алгоритм работы следующий:
0. Есть работающий сервер. 1. При запуске создается резервная копия защищаемого каталога конфигурации /etc 2. В crontab добавляется задание, которое через определенное время ПОСЛЕ ПЕРЕЗАГРУЗКИ восстановит каталог из копии. 3. Если вышеуказанное задание определит, что в систему по ssh вошел указанный пользователь, восстановление отменяется и задание из crontab убирается. 4.Если пользователь не смог войти в систему - сначала создается вторая резервная копия защищаемого каталога (на тот случай, если сконфигурировали все правильно, но забыли/не смогли войти из-за проблем на вашей стороне, ну и для анализа), после этого производится восстановление резервной копии из пункта 1, убирается задание из crontab и производится перезагрузка сервера. Сервер приведен к пункту 0.
Пользоваться этой цацой просто:
1. ПЕРЕД НАЧАЛОМ КОНФИГУРИРОВАНИЯ запускаем скрипт, Он запрашивает имя пользователя и время ожидания до восстановления ПОСЛЕ ПЕРЕЗАГРУЗКИ. 2. Конфигурируем сервак. 3. Отправляем сервак в перезагрузку. (Да, не лучший вариант, но по сравнению с командировкой фигня). 4. Пытаемся войти по ssh.
По ssh мы войдем в любом случае. Или быстро (если сервак сконфигурировали правильно) или по окончании времени ожидания и перезагрузки. Обращаю внимание - если пользователь смог войти в систему - Сервер считается работоспособным, задание из cron убирается. И если вы решите что-то снова поконфигурировать - нужно снова запускать скрипт и один-два раза перезагружать сервак. Лучше составьте план действий. Скрипт тестировался на debian путем удаления каталога /etc/network Используйте скрипт под свою ответственность. Гарантировать, что он заработает на вашей системе я не могу. Для начала попробуйте защить какой-нибудь каталог в домашней директории. Скрипт не сможет восстановить конфигурацию, если машина не грузится совсем (ну, например грохнули fstab) На Alpine точно не работает по двум причинам: 1. crontab не понимает опцию @reboot (проблема решаемая через /etc/inid.d) 2. по умолчанию не работают команды last, who, w. Поэтому несколько проблематично определить наличие пользователя в системе. ➡️ Скрипт в комментария к этому посту, сюда не влез сука! tags: #bash #linux © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

Yandex Cloud анонсировала сервис по аренде выделенных физических серверов Yandex BareMetal позволит арендовать выделенные физ
Yandex Cloud анонсировала сервис по аренде выделенных физических серверов Yandex BareMetal позволит арендовать выделенные физические сервера и гибко настраивать их для размещения любого программного обеспечения, в том числе средств виртуализации. Компании уже могут подать заявку на закрытое тестирование сервиса Yandex BareMetal, которое начнется до конца 2024 года. Yandex BareMetal можно интегрировать с сервисами облачной платформы, чтобы подключить резервное копирование, мигрировать данные, управлять доступом — и настраивать это можно через единую консоль управления, а также использовать единый центр поддержки, биллинг и систему управления доступом. Читайте подробнее в блоге.

Привет. Почему-то я думал что сегодня пятница, мда… Ладно, поехали. Ты всяко встречался с такой ебаной ошибкой при подключении к серверу по ssh:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Please contact your system administrator. Add correct host key in /home/your_user/.ssh/known_hosts to get rid of this message. Offending RSA key in /home/your_user/.ssh/known_hosts:xx
У меня коллеги обычно сразу прибегают и начинают подозревать неладное — ааа спасите, сервер взломали, не могу подключиться! Паникёры блядь…
А дело то в том, что я склонировал сервак и перекинул на него старый айпишник. Соответственно всякие фингерпринты изменились. Чо за ошибка и что нужно делать? Файл ~/.ssh/known_hosts используется для хранения списка хостов, с которыми ты ранее взаимодействовал по ssh. Когда ты впервые подключаешься к новому удалённому серверу по ssh, клиент ssh сохраняет его ключ в этот файл. В дальнейшем, при каждом подключении к этому серверу, ssh-клиент сверяет ключ сервера с тем, что хранится в файле known_hosts. Это помогает удостовериться, что ты подключаешься к правильному серверу, а не к какому-то левому.
Короче вся эта чача сделана для безопасности, чтобы избежать анальной атаки — «мужик посередине».
Но нам то бояться нечего, поэтому забиваем хуй и избавляемся от этого раз и навсегда. Открываем свой локальный /etc/ssh/ssh_config или ~/.ssh/config и херачим в него такое:
Host * 
  StrictHostKeyChecking no
  UserKnownHostsFile=/dev/null
Всё! Теперь даже если случится «мужик посередине», ты успешно подключишься к серверу без всяких ошибок. Если нужно отключить защиту для конкретного хоста, знак звездочки заменяем на нужный тебе ip или домен. Ну а если лень править конфиги, можешь прям из командной строки передавать эти ключи:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@hostname
Либо сделать алиас:
alias ssh = "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
А если всё делать по уму и остерегаться «мужика посередине»: 1. Наводим справки, что случилось с сервером у админов 2. Если все ок, делаем так: ssh-keygen -R <hostname_or_ip> После этой команды, файл known_hosts подчиститься и ошибка отправится в пешее эротическое. Чо тебе еще рассказать? Особо больше нечего по этой теме. А если тебе есть что добавить — велком в комментарии. Давай краба! Завтра надеюсь точно пятница… tags: #linux — 🔔 @bashdays➡️ @gitgate

Ты DevOps инженер и видишь этот пост? Это знак: Яндекс Практикум ждёт именно тебя! Яндекс Практикум ищет наставников на курс
Ты DevOps инженер и видишь этот пост? Это знак: Яндекс Практикум ждёт именно тебя! Яндекс Практикум ищет наставников на курс «DevOps». Наставник ведет вебинары и отвечает на вопросы студентов в чате, проверяет домашние задания и мотивирует, помогает с трудностями во время обучения. Мы ждем, что вы: • знаете, что такое DevOps, зачем он был придуман и при каких обстоятельствах • имеете опыт работы с DevOps-инструментами от 3 лет (CI\CD, Docker, Kubernetes, GitLab) Мы предлагаем удаленку и частичную занятость от 10 часов в неделю, гибкий график, ежемесячный дополнительный доход. 📩 Узнать подробности и откликнуться здесь.

Порой бывает необходимо прям из bash-скрипта добавить/удалить какое-нибудь задание в cron. Ниже пара функций, которые позволяют это сделать. И если с добавлением вообще проблем не возникает
{ crontab -l; echo '#@reboot echo BashDays >/tmp/BashDays.txt' ; }| crontab -
ИЛИ:
{ crontab -l; echo '#*/10 * * * 5 echo BashDays >>/tmp/BashDays.txt' ; }| crontab -
Можно конечно и так, но вдруг одинаковых заданий может быть несколько и их нужно будет как-то различать. Все очень просто. Просто добавь воды комментарий. Для каждой задачи задаешь разные комменты, и тогда без проблем можно удалять задачи.

#!/bin/bash

function ADD_CRON_TASK(){
  local CRON_TASK=${1:-'#'}
  local COMMENT=${2:-$(date +%s)}
  COMMENT=${COMMENT// /_}
{ crontab -l 2>/dev/null; echo "$CRON_TASK #$COMMENT"; }| crontab -
}

function REMOVE_CRON_TASK(){
  if [[ $# -eq 0 ]];then
    echo No comment to remove cron task >&2
    return
  fi
  COMMENT=${1// /_}
  crontab -l 2>/dev/null|sed '/#'$COMMENT'$/d'|crontab -
}

CRON_TASK='#@reboot reboot'
COMMENT="My litle joke"
ADD_CRON_TASK "$CRON_TASK" "$COMMENT"

crontab -l|tail -3

echo '###################################################'
REMOVE_CRON_TASK "$COMMENT"
 
crontab -l |tail -3
Если запустить программу, увидите что-то типа:
# 
# m h  dom mon dow   command
# @reboot reboot #My_litle_joke
#############################
# For more information see the 
# 
# m h  dom mon dow   command
Видно, что программа добавила задание, вывела последние три строки crontab'a, потом разделитель. Затем задание было удалено. Это видно по последним трем строкам. В комментариях задания пробелы заменяются на "_" для упрощения работы c sed. Ну, и на всякий пожарный напомню, что для корректной работы с cron нужно задать переменную PATH либо в crontab, либо в скрипте. tags: #bash #linux © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

🚀 Вебинар о современном подходе к разметке диска! 🚀 Тема: Современный подход к разметке диска Рассмотрим эволюцию разметки
🚀 Вебинар о современном подходе к разметке диска! 🚀 Тема: Современный подход к разметке диска Рассмотрим эволюцию разметки дискового пространства на примере ОС Linux На вебинаре вы узнаете: - Какие требования к дисковому пространству предъявляют современные технологии - Почему нужны дополнительные уровни абстракции - Чем плох старый подход к разметке и почему лучше избегать логических разделов 📅 Дата и время: 27.09 в 20:00 (мск) 🔔 Не упустите шанс! Узнайте, как грамотно планировать дисковое пространство и увеличивать файловую систему на логическом диске! В результате вебинара вы: - Сможете грамотно планировать дисковое пространство - Научитесь оценивать необходимость уровней абстракции для дисков - Попробуете увеличить файловую систему на логическом диске и поймете ограничения разметки на логических дисках 🔗 Ссылка для регистрации:  https://otus.pw/9X5M/ 🔆 Спикер: Андрей Буранов 📌 Занятие пройдёт в рамках курса «Administrator Linux. Basic». Доступна рассрочка на обучение! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Вчера мы рассмотрели способы как отреверсить Dockerfile с помощью рук и глаз. Сегодня рассмотрим никому не известную утилиту
Вчера мы рассмотрели способы как отреверсить Dockerfile с помощью рук и глаз. Сегодня рассмотрим никому не известную утилиту — «Дедок». Утилита написана на питоне и позволяет свести к минимуму handjob по реверсу. Грубо говоря «Дедок» проанализирует твой docker image и выплюнет на экран готовый Dockerfile. Ну как готовый, очень приближенный к реальности. Работает эта хуйня очень просто — парсит history и избавляется от лишней хуйни. Но хуйня порой пролетает, так что будь к этому готов. Запускаем так:
docker run -v /var/run/docker.sock:/var/run/docker.sock mrhavens/dedockify <ID Image>
Либо сразу в алиас:
alias dedoc="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm mrhavens/dedockify"
Предварительно подставь нужный ID Image.
Я этим пользоваться не буду, мне больше handjob нравится, но ты посмотри, мож где-то быстренько пригодится что-то зареверсить. ➡️ Репа проекта и документашка. Развлекайся. Увидимся совсем скоро! tags: #debug #devops #docker — 🔔 @bashdays➡️ @gitgate

Если вы учитесь в школе или колледже и хотите начать программировать, то стоит заручиться поддержкой опытных специалистов! Ве
Если вы учитесь в школе или колледже и хотите начать программировать, то стоит заручиться поддержкой опытных специалистов! Ведь для формирования навыков важен комплексный подход и возможность проконсультироваться с экспертами. Понимая это, Яндекс Лицей запустил годовую онлайн-программу по одному из самых популярных языков программирования — Go. Все задания разработаны специалистами из индустрии, а потому акцент в них сделан на практике. Во время обучения вы разберётесь, как писать понятный и конкурентный код, познакомитесь с системой контроля версий Git, а также начнёте проектировать микросервисы. Что ещё? - Учиться можно онлайн и в комфортном темпе. - Чтобы начать обучение, не нужно проходить вступительные испытания. - Обучение полностью бесплатное. Программа подойдёт подросткам 13-20 лет. Подайте заявку до 30 сентября и учитесь у лучших!

Реверсим Dockerfile Представим что у нас пропал Dockerfile, а остался только собранный имейдж. Ну или скачал ты готовый имейдж с докерхаба и хочется узнать как его собирали. Как произвести реверсинг? Для примера соберем образ из такого Dockerfile
FROM python:3.8-slim
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "app.py"]
Запускаем сборку имейджа:
docker build -t pythoner:latest .
Теперь нативными командами вытягиваем начинку, без всяких dive и т.п. Но придется немного глазками пробежаться.
docker history pythoner:latest
Результат команды выведет протокол сборки + команды. Но команды будут урезанными. Для того чтобы получить полный листинг, делаем так:
docker history --no-trunc pythoner:latest
Вылетит простыня, но при сноровке и насмотренности, всё вполне предсказуемо. В идеале совмещаем с dive, смотрим окно Layers и стрелками перемещаемся по слоям, а там уже видно все команды, которые выполнялись из Dockerfile. По итогу из говна и палок собираем копию нужного нам Dockerfile. А файлы, которые были добавлены через COPY, вытягиваем себе на локальную машину так:
docker cp <image id>:/etc/nginx/nginx.conf /tmp
Про дебаг докер имейджей и контейнеров я писал в этом посте, почитай, достаточно информативно.
Как вариант можешь воспользоваться анализаторами, например trivy. Trivy это комплексный и универсальный сканер безопасности для docker images. Заодно еще безопасность своих решений можно позырить и приуныть. А еще есть клевая поделка для этого на python, но про нее закину уже завтра. Вот такие пироги, если знаешь еще способы — пиши в комменты, будет полезно! tags: #debug #devops #docker — 🔔 @bashdays➡️ @gitgate

Активируйте режим супергероя. 26 сентября в 11:00 (МСК) «Лаборатория Касперского» в прямом эфире представит обновленное решен
Активируйте режим супергероя. 26 сентября в 11:00 (МСК) «Лаборатория Касперского» в прямом эфире представит обновленное решение Kaspersky EDR для бизнеса Оптимальный 3.0. Базовые функции EDR теперь стали доступны не только для Windows, но и для Linux и macOS. На стриме эксперты расскажут, как с помощью автоматизированных сценариев вы сможете предотвратить развитие атаки на рабочие места на Windows, Linux и macOS всего в несколько кликов и какие еще полезные возможности для вас открывает Kaspersky EDR для бизнеса Оптимальный 3.0. ЗАРЕГИСТРИРОВАТЬСЯ До встречи на стриме!