ch
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 810 名订阅者,在 技术与应用 类别中位列第 5 710,并在 俄罗斯 地区排名第 28 118

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 23 810 名订阅者。

根据 15 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -195,过去 24 小时变化为 -10,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 23.79%。内容发布后 24 小时内通常能获得 11.52% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 5 664 次浏览,首日通常累积 2 744 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 25
  • 主题关注点: 内容集中在 bashdays, linux, bash, docker, скрипт 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

凭借高频更新(最新数据采集于 16 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

23 810
订阅者
-1024 小时
-337
-19530
帖子存档
Рубрика "упоротые однострочники". 🔤🔤🔥🔤🔤🔤🔤🔤🔤 Как послать PING всем серверам кластера редиса и не умереть от скуки
for nodeport in $(echo "CLUSTER NODES" | nc redis.example 6900 | awk '$1~/^[0-9a-z].*$/ {sub("@"," "); print $2}'); do IFS=":" read -r node port <<< $nodeport; echo -n "$nodeport: "; echo "PING" | nc $node $port; done
Первым делом мы шлём в известный нам сервер кластера redis команду CLUSTER NODES.
echo "CLUSTER NODES" | nc redis.example 6900
Референс команды cluster nodes. Пример выхлопа
shell$5256
07c37dfeb235213a872192d90877d0cd55635b91 127.0.0.1:30004@31004,hostname4 slave e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 0 1426238317239 4 connected
67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 127.0.0.1:30002@31002,hostname2 master - 0 1426238316232 2 connected 5461-10922
292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 127.0.0.1:30003@31003,hostname3 master - 0 1426238318243 3 connected 10923-16383
6ec23923021cf3ffec47632106199cb7f496ce01 127.0.0.1:30005@31005,hostname5 slave 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 0 1426238316232 5 connected
824fe116063bc5fcf9f4ffd895bc17aee7731ac3 127.0.0.1:30006@31006,hostname6 slave 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 0 1426238317741 6 connected
e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 127.0.0.1:30001@31001,hostname1 myself,master - 0 0 1 connected 0-5460
Дальше мы парсим выхлоп awk-шкой, так как нам нужны чисто IP и порт
awk '$1~/^[0-9a-z].*$/ {sub("@"," "); print $2}')
$1~/^[0-9a-z].*$/ - берём строчки, которые начинаются с циферкобуковок {sub("@"," "); print $2} - режем дополнительно по символу собаки, выводим 2ю колонку. Получаем:
127.0.0.1:30004
127.0.0.1:30002
127.0.0.1:30003
127.0.0.1:30005
127.0.0.1:30006
127.0.0.1:30001
Ура, у нас есть список редисок с портами. Всё это заворачиваем в for:
for nodeport in $(echo "CLUSTER NODES" | nc redis.example 6900 | awk '$1~/^[0-9a-z].*$/ {sub("@"," "); print $2}'); do ...; done
И кайф, осталось порезать по двоеточию в разные переменные хост и порт, и, вооружившись netcat-ом, сделать PING. Режем строку по двоеточию на 2 переменных
IFS=":" read -r node port <<< $nodeport;
Итого у нас получается следующее:
nodeport=127.0.0.1:30004
node=127.0.0.1
port=30004
Выводим себе для удобства чтения результата хост редиса и порт куда стучимся:
echo -n "$nodeport: "
И netcat-ом шлём команду PING уже на ноду.
echo "PING" | nc $node $port
Получаем на выходе:
127.0.0.1:30004: +PONG
127.0.0.1:30002: +PONG
127.0.0.1:30003: +PONG
127.0.0.1:30005: +PONG
127.0.0.1:30006: +PONG
127.0.0.1:30001: +PONG
🛠 #балансбатл #людипишут @bashdays @linuxfactory @blog

🚀 Автоматизация деплоя приложений без боли и хаоса Хотите, чтобы обновления в вашем приложении попадали в кластер автоматиче
🚀 Автоматизация деплоя приложений без боли и хаоса Хотите, чтобы обновления в вашем приложении попадали в кластер автоматически, а конфигурации всегда были согласованы? Приходите на вебинар по GitOps и Argo CD. Разберём: 🔹 Что такое GitOps и как ArgoCD работает как «оператор доставки» 🔹 Как пошагово настроить деплой из Git-репозитория в Kubernetes 🔹 Как создать Application CRD и отслеживать процесс в веб-интерфейсе Кому будет полезно: DevOps, GitOps-инженерам, администраторам, разработчикам, SRE. 📈 После вебинара вы сможете: Разворачивать Argo CD в Kubernetes Автоматизировать доставку из Git Управлять мультикластерными средами и контролировать дрейф конфигураций 💡 Меньше ручных действий — больше стабильности! Регистрируйтесь сейчас и получите скидку на обучение: https://vk.cc/cONyhn Дата: 26 августа в 20:00 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Поделюсь своим решением, как я организовал бэкапы баз 1С. Основное требование к решению (за исключением работоспособности) - использование штатного ПО, которое уже есть в репозитории/ничего дополнительно не устанавливать. Имитация закрытого контура. 🔤🔤🔥🔤🔤🔤🔤🔤🔤 Итак, условия: windows server на котором работает 1с и на нем же PostgreSQL и некое файловое хранилище, к которому есть доступ исключительно по ftp. Из утилит, которыми можно решать задачу, под рукой оказалась rsync. Бэкап базы 1С будем делать штатной программой от 1С. Однозначного мнения нет, чем лучше бэкапить - средствами СУБД или этой программой, есть у каждого варианта свои преимущества и недостатки. В нашем варианте используем именно ПО от 1С. Чтобы делать это с помощью планировщика, делаем простой .bat для windows сервера, имя файла отражает дату его создания.
set datetemp=%date:~-10%`

"C:\Program Files\1cv8\8.3.24.1819\bin\ibcmd.exe" infobase dump --db-server=localhost --dbms=PostgreSQL  --db-name=название_бд --db-user=имя_пользователя_бд --db-pwd=пароль_пользователя_бд --user=имя_пользователя_в_1С --password=пароль_пользователя_1С "C:\путь_для_бэкапа\имя_файла_"%datetemp%".dt"
Бэкапы базы сохраняются локально. Теперь надо их оттуда забрать и бережно перенести на файловое хранилище. Для этих целей хорошо подойдет rsync. Поднимать сервер rsync не хотелось, поэтому пошел по пути набора команд. Формат будущей команды выглядит так:
rsync -av ~/bases_1s/bgu ~/backup/
Rsync (ключа а = в архивном режиме, его обычно достаточно для целей бэкапа, ключ v добавит подробностей) скопирует папку bgu из ~/bases_1s и положит их в ~/backup/. Обращайте внимание на слэши в конце пути - играют роль в вопросе перенести папку целиком или же ее содержимое, без создания одноименной папки в точке назначения. Все хорошо, но rsync работает, если хотя бы один путь локальный, а у нас два удаленных хоста. Выход есть. Примонтируем папку с бэкапами по SMB. Строка в /etc/fstab выглядит у меня так:
//192.168.0.2/название_папки_на_сервере_win /home/user/bases_1s cifs credentials=/home/user/.smbcreds,noauto,users,iocharset=utf8,uid=500,gid=500 0 0
В .smbcreds лежит логин с паролем пользователя windows сервера, noauto=не монтировать при запуске. Далее, возникла засада в виде того, что если доступ есть по ftp, то rsync бессилен, ftp - протокол и rsync тоже протокол и надо выбрать. В этой ситуации поможет замечательная curlftpfs. Утилита позволяет монтировать удаленные ftp папки в локальную файловую систему. Установим ее и добавим своего пользователя в группу fuse (чтобы работать без повышения привилегий):
apt-get install curlftpfs
usermod -aG fuse имя_пользователя.
Создаем файлик с кредами, создаем папку куда будем монтировать и подключаемся (все от своего пользователя):
echo 'machine 192.168.0.18
login фтп_юзер
password пароль' > .netrc
Кроме работы rsync есть еще реализация резервного копирования посредством cp. Оставил пока как есть, в планах единообразить и прикрутить отчет о выполнении.
На данном этапе скрипт выглядит примерно так, смотри в первом комментарии к этому посту, одним кадром не влез.
Стоит еще пояснить о ключе --temp-dir=/tmp/rs в команде rsync. Он нужен чтобы обойти ограничение "ftp файловой системы", которая не поддерживает создание временных файлов. 🛠 #балансбатл #людипишут @bashdays @linuxfactory @blog

🚀⚙️ Хотите упростить свою работу в Linux? Научитесь писать скрипты с помощью Bash! 👉 Присоединяйтесь к открытому вебинару 2
🚀⚙️ Хотите упростить свою работу в Linux? Научитесь писать скрипты с помощью Bash! 👉 Присоединяйтесь к открытому вебинару 25 августа в 20:00 МСК и разберитесь, как с помощью Bash автоматизировать рутинные задачи в Linux. Мы объясним, как работать с интерпретатором Bash, создавать переменные, использовать условия и циклы. 💪 Этот вебинар поможет быстро освоить базовые навыки Bash и научиться автоматизировать простые операции, что значительно упростит рабочий процесс. 🎁 Запишитесь на вебинар и получите индивидуальное предложение на курс «Administrator Linux. Basic». 👉 Для участия зарегистрируйтесь: https://vk.cc/cOMhJS Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Из каждого чайника слышу про ZED, это такой новомодный IDE от авторов Atom. Славится своей скоростью и минимализмом, никаких тебе новогодних ёлок и перегруженных интерфейсов. Чем-то напоминает VIM. Дошли руки потыкать. Но одного желания мало, под винду сука дистрибутив не завезли. Хочешь под винду? Скомпилируй из исходников! 😀😃😄😁😅😂🤣😊 😇🙂🙃😉😌😍🥰😘 😗😙😚😋😛😝😜🤪 🤨🧐🤓😎🤩🥳😏😒 Да легко! Спустя 4 часа ебатни и дебага — спасибо, идите нахуй!
Если официальный мануал по компиляции писала жопорукая обезьяна, тут уже ничего с этим не поделаешь.
Залил в себя пару пиалок до-хун-пао, словил дзен и нашел выход. Пиздуем на сайт и ищем ZED. Ебала жаба гадюку! Всё уже придумано и собрано за нас. Верните мне 4 часа компиляции! Открываем CMD и хуячим:
scoop bucket add extras
scoop install extras/zed
Всё! Если не установлен scoop, ставим так:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
Что по IDE? Моё почтение, все нужные мне плагины по девопсовым делам — есть. Даже маркдаун и превью работает. Шикарно! Из коробки есть подключение к удаленным серверам. То есть подключаешься к своему удаленному серверу разработки и пишешь код. В лучших традициях VSCode. Чтобы по умолчанию в качестве терминала у тебя не открывался CMD, делаем финт ушами и дружим ZED с WSL.
  "terminal": {
    "shell": {
      "program": "C:\\Windows\\System32\\wsl.exe"
    },
    "font_family": "Hack Nerd Font Mono",
    "font_size": 15,
    "line_height": "standard"
  }
Теперь открывается ZSH, или что там у тебя установлено в WSL.
Ааа, забыл, в ZED можно подключить ИИ агенты, причем можешь локально поднять дипсик или т.п. и использовать его прям в IDE.
Больше добавить пока нечего, всё нравится. Буду тыкать, а там уже посмотрим. 🛠 #windows #ide #dev @bashdays @linuxfactory @blog

Обсуждаем бэкапы и аварийное восстановление 🔐 вместе с Cloud․ru на вебинаре 26 августа В программе вебинара: ➡️ что такое ре
Обсуждаем бэкапы и аварийное восстановление 🔐 вместе с Cloud․ru на вебинаре 26 августа В программе вебинара:
➡️ что такое резервное копирование и аварийное восстановление; ➡️ в чем между ними разница и когда они нужны; ➡️ как использовать облако для непрерывности данных; ➡️ как еще можно защитить вашу информацию.
А еще в прямом эфире эксперты проведут демо: настроят резервное копирование и аварийное восстановление в облаке. Зарегистрироваться 👈

Как-то давненько пришлось мне отлаживать большущую APIху, но под рукой была только консолька. Ни о каком GUI и речь не шла. А
Как-то давненько пришлось мне отлаживать большущую APIху, но под рукой была только консолька. Ни о каком GUI и речь не шла. А пулять запросы через curl я заебался. Тем более хотелось что-то организованное и визуально приятное. Postman сразу мимо, это гавно сделали настолько перегруженным, что им пользоваться уже нереально, да и под чистым терминалом его не запустишь. Выбор пал на Posting. Это TUI клиент со всем необходимым функционалом. Так он и прижился, сейчас если что-то нужно отладить или потестить у меня есть эта замечательная тулза. Не перегружена хуйнёй и дружелюбная. Есть все самое необходимое, даже мышкой можно тыкать. Ну и сессии сохраняет со всеми запросами. Ставится элементарно:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --python 3.13 posting
uv — это современный инструмент для Python, который объединяет в себе функционал менеджера пакетов и виртуальных окружений, задумывается как замена pip + venv/virtualenv + pip-tools.
Для хакерменов прям мастхев. Забирай в копилку, годнота! 🛠 #linux #utilites @bashdays @linuxfactory @blog

😭Устали находить в продакшене критические уязвимости слишком поздно? На открытом уроке «От идеи до воплощения – как обезвред
😭Устали находить в продакшене критические уязвимости слишком поздно? На открытом уроке «От идеи до воплощения – как обезвредить программный код?» мы покажем, как встроить сканеры SAST, SCA и DAST прямо в пайплайн CI/CD. Вы увидите живую демонстрацию настройки и запуска инструментов, которые автоматически выявляют уязвимости ещё на этапе сборки. Представьте, что каждая сборка проходит чек-лист безопасности без ручных проверок, а вы уверены в надёжности выпускаемого кода. 🔥Встречаемся 21 августа в 20:00 МСК, зарегистрируйтесь и получите скидку на большое обучение «Внедрение и работа в DevSecOps»: https://vk.cc/cOJqkG Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Хотел бы предложить пост о деградации батареи в Linux. 🔤🔤🔥🔤🔤🔤🔤🔤🔤🔤🔤🔤🔤 Оригинал статьи написал для своего блога и хотел бы поделиться с интересующейся Linux-ом аудиторией 👇 https://alchemmist.xyz/ru/articles/battery-degradation/ 🛠 #балансбатл #людипишут @bashdays @linuxfactory @blog

🔥 Прожарка резюме от Василия Озерова: что действительно важно DevOps-инженеру Рекрутер может передать ваше резюме дальше — н
🔥 Прожарка резюме от Василия Озерова: что действительно важно DevOps-инженеру Рекрутер может передать ваше резюме дальше — но решение принимать будет нанимающий инженер. И он смотрит совсем на другое: сложность задач, уровень ответственности, глубину технического опыта, а не «знание Kubernetes». 📅 3 сентября в 18:30 мск приглашаем на вебинар с Василием Озеровым — DevOps-инженером, сооснователем Rebrain и нанимающим специалистом с 12+ годами опыта. Что будет: - живой разбор резюме участников — джун, мидл, синьор - что вызывает доверие, а что — сомнения при найме инженером - как презентовать опыт и стек, чтобы сразу было видно ваш уровень - матрица компетенций DevOps: разберём, как её использовать для роста и подготовки резюме 🎁 Бонусы за регистрацию: - гайд с матрицей компетенций DevOps - плейлист по поиску работы Хотите, чтобы ваше резюме разобрали в прямом эфире? 👉 Ждем на эфире 3 сентября в 18:30 по МСК: жмите скорее и участвуйте Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFHqUBQk

Безумству храбрых поём мы песню Ну чё, принёс я тебе «остров с сокровищами». ㅤ На карте наш подписчик рандомом разбросал 100
Безумству храбрых поём мы песню Ну чё, принёс я тебе «остров с сокровищами». На карте наш подписчик рандомом разбросал 100 кодов. Каждый код ты можешь обменять на 500 настоящих рублей. Все коды установлены на поверхности для простоты поисков.
Дополнительно установлены 10 кодов на два бесплатных месяца обучения в Linux Factory.
Поиск кодов это не основное, можно банально встретиться 1x1 и набить друг другу ебальник. Ну или просто почилить, отгрохать себе подземную базу или построить личный дата-центр. Если будут лаги и т.п. пиши сюда @linuxfactorybot, бум разбираться. Я нашел код, что дальше? 1. Делаешь скрин кода и координат XYZ (нажать F3) 2. Скидываешь эту инфу Максу 3. Забираешь приз Что бы не было соблазна схитрить, предприняты меры, все ходы записаны, так что будь честен.
Учти, что за тобой будут охотиться специально обученные боты-вжопуебаки.
Как начать? Качаешь клиент отсюда или берешь официальный. Версия сервера 1.21.8 Подключаешься к mc.bashdays.ru и погружаешься в приключения. Регистрация
/reg <пароль> <пароль>
/log <пароль>
Время работы сервера: c 05:00 МСК до 19:00 МСК 😀😃😄😁😅😂🤣😊 😇🙂🙃😉😌😍🥰😘 😗😙😚😋😛😝😜🤪 🤨🧐🤓😎🤩🥳😏😒 Что дальше? А дальше посмотрим, если сервак переживет эту неделю и не будет уничтожен письками, то таблички с промокодами будут пополняться каждую неделю. Ну и время работы сервера будет увеличено. А по пятницам можно сходки устраивать, голосовой чатик замутить, пиво, все дела. На этом пока всё. Хорошей тебе рабочей недели. 🛠 #островсокровищ @bashdays @linuxfactory @blog

🎮 Как насчёт начать кодить с нуля? «Школа 21» от Сбера — это бесплатная школа цифровых технологий. Здесь ты соберёшь портфол
🎮 Как насчёт начать кодить с нуля? «Школа 21» от Сбера — это бесплатная школа цифровых технологий. Здесь ты соберёшь портфолио и получишь востребованную профессию в ИТ Всё это — совершенно бесплатно. Без лекций, преподавателей и ограничений. Только практика и нетворкинг. 📌 Что еще? — кампусы, которые работают 24/7 в Москве, Уфе, Казани, Новосибирске, Белгороде, Липецке, Нижнем Новгороде и других городах России. — возможность совмещать с работой или учебой в вузе. — сюда поступают независимо от образования: 50% участников пришли без опыта в ИТ. — гарантированная стажировка в ИТ-компании. — востребованные профессии: разработчик, devops/sre-инженер, data scientist, qa-инженер, специалист по кибербезопасности, бизнес- и системный аналитик. 🎯 Не упускай возможность — подавай заявку прямо сейчас: https://21-school.ru/ Реклама. Заказчик АНО «Школа 21» ИНН 7736316133

Бесплатный онлифанс
begin 644 bashdays.txt
MT)_1@-"XT++0M=&"+"#1@="ZT+[0N]&,T+K0OB#0L=&#T+30M=&"(#$P,"\P
M+C4L(-"]T+#0O]"XT8C0N"#0OM&"T++0M=&"(-"R(-"ZT+[0O-"\T+70O=&"
MT+#1@-"XT8_1A2#0NB#0O]"^T8'1@M&#(-"X(-"RT+[0M]"\T+[0MM"]T+X@
IT8$@T8+0OM"QT+[0N2#1@="RT8_0MM"UT8+1@=&/(-"<T+#0NM&!+@H`
`
end
😀😃😄😁😅😂🤣😊 😇🙂🙃😉😌😍🥰😘 😗😙😚😋😛😝😜🤪 🤨🧐🤓😎🤩🥳😏😒 🛠 #xfiles @bashdays @linuxfactory @blog

ну я его без мультистейджа собирал и сжатие дополнительно использовал

Kubernetes, который не бесит В мире managed Kubernetes обычно происходит одно из двух: либо вам подсовывают урезанный сервис с кучей ограничений, либо предлагают «гибкость», которая на деле означает «разбирайтесь сами». Timeweb Cloud пошел третьим путем, – создал собственную платформу управления Kubernetes на k0s. Теперь не нужны танцы с бубном самостоятельной установкой и настройкой всех компонентов Kubernetes. Вот что получилось: под капотом — чистый контроль без сюрпризов. Виртуалки под control plane вместо абстракций, работающий etcd с прозрачными метриками и поддержка всего, что может понадобиться (от простых подов до сложных CSI-драйверов и GPU-ворклоадов). При этом кластеры собираются за пять минут, сами обновляются и чинятся, а если что — можно забрать свои данные и уйти без замков. Главное — это не просто «голый» k0s, а продуманный managed-сервис с полноценным cloud-native стеком: CNI, S3, маркетплейс аддонов, GPU под AI. Можно интегрировать DBaaS в свою приватную сеть, чтобы обеспечить изолированное взаимодействие между кластером и базой данных. Управление kubectl/k9s/Lens/Dashboard. Автоматизация — Terraform/API/CLI. Для тех, кто реально нагружает кластеры, это один из немногих вариантов, где managed не значит «кастрированный». Штука еще в том, что есть зарубежные локации. Сервис развернут в четырех дата-центрах — в Москве, Санкт-Петербурге, Амстердаме и Франкфурте. Запустить кластер tags: #Kubernetes #DevOps #k0s Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525, Erid: 2VtzqwDsqN1

Как я проебал 4 часа из-за кавычки Балансбатл заебал, теперь пишу Я, одним дублем, на ошибки не триггеритесь 🥳
Самое главное в ходе дебага, не выйти на самого себя.
Да всё просто. После блокировок появилось много тикетов от клиентов, в которых говорилось - хочу GPT чат ёпта и чтобы блядь как раньше, нажал кнопочку и пошел работать. Да, без GPT уже никто не работает, деградировали все сука в зеленые сопли. Тут даже не «вайб-кодинг», а прям массовая истерия и осмысленный слив корпоративных данных. Нужно проверить договор? Так этож его читать нужно, нахуй надо, заливаем в GPT, а он пусть анализирует риски и неточности. Ну и всё в таком духе. 😀😃😄😁😅😂🤣😊 😇🙂🙃😉😌😍🥰😘 😗😙😚😋😛😝😜🤪 🤨🧐🤓😎🤩🥳😏😒/ Левой дрочу, правой жопу щекочу! Короче спрос есть, тем более я умею настраивать openconnect да и сам им пользуюсь в личных целях. Хуль, пошел настраивать на серваки клиентов, настроил, пытаюсь подключиться с локальной машины. ХУЙ ТАМ ПЛАВАЛ! Сервер нотфаунд. Пробую курлы, телнеты, меняю порты — ничего! Ладно, думаю у клиента сервак с плохим айпишником, пошел настраивать другому клиенту. Такая же история. Хм… уже закономерность какая-то. Иду к третьему клиенту, переношу полностью образ своего сервера на его сервер. Ну теперь 100% заработает! Ага, история повторяется… Сервер нотфаунд. Ну не может же такого быть. У меня с моим сервером все работает, а с клиентскими не работает. Даж не курлит и не телнетит ничего. Однако. Как говорится:
Лох этот тот, кто пытается понять что вокруг происходит, хотя все кругом уже это понимают.
Утро вечера мудренее. Если что-то не получается, нужно это дело отложить и вернуться к нему позже. Так и сделал. На утро вернулся и подумал иначе. А что если проблема — во мне? Нужно проверить эту гипотезу. Беру ноут для созвонов, ставлю openconnect клиента и без проблем подключаюсь ко всем 3м серверам которые вчера настраивал. Хм… иду за комп на котором все вчера настраивал — сервер нотфаунд. Да ёбтавоюмать! Это как в nginx с редиректами, ебешься 5 часов, а потом понимаешь что дело не в nginx, а в твоём браузере. Оно закешировало запросы и похуй ему, редиректит по умолчанию, даже если меняешь конфиг nginx. Что было? 😀😃😄😁😅😂🤣😊 😇🙂🙃😉😌😍🥰😘 😗😙😚😋😛😝😜🤪 🤨🧐🤓😎🤩🥳😏😒 Антивирус блядь! Какой не скажу, а то опять придут люди из 90х и начнут в меня письками тыкать и угрожать. Мыж с вами достаточно медийные, обсирать никого нельзя. В антивирусе есть галка — Блокировать нерекомендуемые сайты. Методом подбора эта галка была определена, она и блочила все мои попытки подключения. Это даже не фаервол, фаервол я отключал, когда настраивал openconnect. Всегда фаер отключаю когда работы подобного плана делаю. Это чисто хуйня, которая блядь неочевидно скрыта в другом разделе. И до сих пор непонятно, почему айпишники моих серверов это рекомендуемые, а айпишники клиентов это не рекомендуемые. Так и живем. Один лишний пробел, одна не поставленная запятая, забытый таб, вполне может уничтожить твой день. Но опять же опыт. Теперь при настройке подобного гавна, буду иметь это ввиду. Но это не точно. Я люблю по 5 раз наступать на грабли. Говорят на ошибках учатся, но это не про меня. Век живи, век учись! 🛠 #рабочиебудни @bashdays @linuxfactory @blog

Если в каком-то скрипте лень заморачиваться с логами, можно воспользоваться утилитой systemd-cat. Она отправляет логи прямиком в journald. 🔤🔤🔥🔤 🔤🔤🔤🔤🔤🔤 Например:
echo "Successful backup" | systemd-cat -t my-backup
Просмотреть логи можно по тегу:
journalctl -t my-backup
Можно указать приоритет сообщения текстом или числом, как в syslog:
echo "Шеф, усё пропало!" | systemd-cat -t my-backup -p 1
А можно и префиксом в начале сообщения (число в угловых скобках):
echo "<1>Шеф, усё пропало!" | systemd-cat -t my-backup
В случаях отправки через pipe в journald попадет только то, что вывелось в stdout. Для логирования stderr можно либо отправить stderr в stdout, либо запускать команду как аргумент systemd-cat:
ls non-exists 2>&1 | systemd-cat -t my-log
systemd-cat -t my-log ls non-exists
Во втором случае можно задать отдельный приоритет для сообщений из stderr: --stderr-priority. 😀😃😄😁😅😂🤣 😇🙂🙃😉😌😍🥰 😗😙😚😋😛😝😜 🤨🧐🤓😎🤩🥳😏 🛠 #балансбатл @bashdays @linuxfactory @blog

Главные по контейнеризации в России приглашают на второй митап Deckhouse User Community. 21 августа | Москва Приходите, если
Главные по контейнеризации в России приглашают на второй митап Deckhouse User Community. 21 августа | Москва Приходите, если работаете с Kubernetes или планируете начать. Разберём три практических кейса: → как DKP управляет узлами кластера — от создания до вывода из кластера; → как построить платформу обучения на Community Edition быстрее ванильного Kubernetes; → как автоматизировать контроль архитектуры с помощью фитнес-функций. Будет полезно инженерам эксплуатации, платформенным разработчикам и всем, кто хочет прокачать навыки работы с современными подходами в DevOps. Только офлайн. Пицца и нетворкинг в программе. Регистрируйтесь!

Делал это для автоматического выполнения разных команд на сетевом оборудовании и парсинга по разным критериям. 🔤🔤🔥🔤🔤🔤🔤🔤 🔤🔤 Подключение к telnet c аутентификацией
def respond_to_telnet_commands(sock, data):
    """Отвечает на IAC-команды, отправляя WONT на все DO и DONT на все WILL."""
    i = 0
    while i < len(data):
        if data[i] == 0xff and i + 2 < len(data):  # IAC
            command, option = data[i + 1], data[i + 2]
            if command == 0xfd:  # DO
                sock.send(bytes([0xff, 0xfc, option]))  # WONT
            elif command == 0xfb:  # WILL
                sock.send(bytes([0xff, 0xfe, option]))  # DONT
            i += 3
        else:
            i += 1
respond_to_telnet_commands - функция понадобится только если в ответе от сервера получаем такое b"\xff\xfb%\xff\xfb&\xff\xfd\x18\xff\xfd \xff\xfd#\xff\xfd'\xff\xfd$". Если же в конце этой кишки будет login то всё ок можно сразу отправлять логин sock.send(b'login\r\n') Подключение через ipython:
import socket
sock = socket.socket()
sock.connect(('192.168.1.100', 5000))
data = sock.recv(1024)
print(data)
respond_to_telnet_commands(sock, data)
data = sock.recv(1024)
print(data)
respond_to_telnet_commands(sock, data)
data = sock.recv(1024)
print(data)
sock.send(b'<login>\r\n')
data = sock.recv(1024)
print(data)
sock.send(b'<pass>\r\n')
data = sock.recv(1024)
print(data)
sock.send(b'<command>\r\n')
data = sock.recv(1024)
print(data.decode())
Подключение к telnet без аутентификации В /etc/inetd.conf добавить:
5000 stream tcp nowait root /usr/local/bin/telnet_noauth 
telnet_noauth - 5000 можно заменить на любой порт или написать просто telnet будет использоваться для подключения порт 23 <service_name>: имя службы (например, telnet), соответствует записи в /etc/services. <socket_type>: обычно stream (для TCP) или dgram (для UDP). <protocol>: протокол, например, tcp или udp. <wait/nowait>: wait (ждёт завершения процесса) или nowait (многопоточный). <user>: пользователь, от имени которого запускается служба (например, root). <server_program>: путь к исполняемому файлу службы (например, /usr/sbin/in.telnetd). <server_args>: аргументы для программы (обычно имя программы). Добавить скрипт telnet_noauth с содержимым:
#!/bin/bash                                                           

/bin/bash -i
Дать права на исполнения:
chmod +x /usr/local/bin/**telnet_noauth**
Подключение через ipython:
import socket
sock = socket.socket()
sock.connect(('192.168.1.100', 5000))
data = sock.recv(1024)
print(data)
sock.send(b'<command>\r\n')
data = sock.recv(1024)
print(data.decode())
Такие дела! 🛠 #балансбатл @bashdays @linuxfactory @blog

Переворачивайте календарь вашего аутлука и бронируйте 3-е сентября 📆 Под IT-конференцию GoCloud Tech! В этом году команда Cl
Переворачивайте календарь вашего аутлука и бронируйте 3-е сентября 📆 Под IT-конференцию GoCloud Tech! В этом году команда Cloud․ru снова собирает DevOps, SRE, разработчиков, архитекторов, дата-сайентистов, техлидов, чтобы вместе обсудить работу с облаками и AI. Будут четыре трека:
🤖 AI&ML — узнаете, как устроены RAG-системы и мультиагентные системы и как начать их использовать. ☁️ Cloud Infrastructure — нюансы сетевой архитектуры, проектирование IaaS‑кластеров на K8s, возможности балансировщиков и производительность SDN. 📈 Data&Analytics — про современные подходы к Big Data: тренды, интеграцию с AI-агентами и инструменты для хранения, обработки и анализа. ⚙️ Dev Platform Services — заглянем «под капот» решений, чтобы облегчить повседневную рутину разработки и настройки сервисов.
А еще вас ждут демо, воркшопы, карьерные консультации, кастомный мерч и яркое afterparty. Не пропустите🖱