Bash Days | Linux | DevOps (@bashdays) — Telegram-канал | Telegram Dialogs
Все каналы
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

@bashdays

24K подписчиков технологии 💬 Комментарии открыты ✓ Зарегистрирован в РКН

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

Последние публикации

Bash Days | Linux | DevOps
15.06.2026 07:00 · 👁 1.6K
Спрос на эту профессию очень высокий, как и уровень зарплат в отрасли. Хороший DevOps-инженер — редкий и востребованный специалист. Если хотите стать одним из них — начните с курса Нетологии.  Что освоите за время обучения:  👉 Docker, Kubernetes, Jenkins, Git и ispmanager;  👉 настройку CI/CD и мониторинг инфраструктуры;  👉 администрирование Linux и работу с облачными технологиями;  👉 микросервисную архитектуру и отказоустойчивые кластеры. В программе — минимум 4 проекта, бесплатный доступ к Yandex Cloud, 3 месяца практики в ispmanager и приоритет при отборе на вакансии партнёра. Плюс 10 живых встреч с экспертами из Alibaba Group, VK и Ozon — сможете спросить о профессии всё, что волнует. До конца июня на курс действует скидка 50% по промокоду IT50JUNE — записывайтесь 💡 Реклама. ООО “Нетология” ОГРН 1207700135884 Erid: 2VSb5wbUz9Q
Bash Days | Linux | DevOps
11.06.2026 12:08 · 👁 3.7K
Управление Docker контейнерами без Portainer и Dockge ㅤ Долгое время я сидел на Dockge, оно хостится у меня на малинке. А на самой малинке я гоняю: jellifyn, qbittorrent, grafana, prometheus, uptime kuma, watchyourlan, technitium dns. Для таких целей Portainer крайне избыточен, мне в хер не уперся космический корабль, да и многое в Portainer сделано через жопу, хрен чё найдешь. Поэтому Dockge покрывает все мои хотелки. Но рано или поздно хочется нового. И новое это — DockHand. Причем этот проект не просто пилит какой-то энтузиаст, проект с закосом на интерпрайз. Но полностью opensource. Люблю opensource, за то, что если есть закос на интерпрайз, то можно посмотреть исходники и реверснуть лицензию. С DocHand я пока особо глубоко не ковырялся, но чуть позже обязательно пропатчу, как собственно провернул это с mattermost, gitlab и т.п. Да, по функционалу DockHand ничем не уступает Portainer и даже превосходит его. Для меня важно, чтобы всё было очевидно и понятно, без - хуй чё найдешь. И тут с этим всё прекрасно. Ладно, чем бы дитя не тешилось. Вкорячиваем... Читать продолжение: https://two.su/2517q 🛠 #devops #selfhosted — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Bash Days | Linux | DevOps
09.06.2026 07:13 · 👁 4.4K
Всем привет. Сегодня хочу поговорить о культуре написания условий bash. Точнее, об использовании отрицаний (НЕ). 🔤🔤🔤🔤🔤🔤🔤 Поводом послужила конструкция, которую я нашел при изучении одного скрипта: if [[ ! -f "$file" || ! -r "$file" || ! -w "$file" ]];then echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi ㅤ Расшифруем: ! -f "$file" - НЕ регулярный файл (возможно каталог, устройство, или вообще ничего). ! -r "$file" - у файла НЕт прав на чтение. ! -w "$file" - у файла НЕт прав на запись. Условия объединены по ИЛИ, значит если выполнится какое-либо - будет ошибка. С точки зрения логики - все правильно, но у меня лично в глазах рябит от количества палок. 👆На мой взгляд, отрицания сильно осложняют понимание. Вспоминаем, что: ! A || ! B эквивалентно ! [ A && B ] ! A && ! B эквивалентно ! [ A || B ] 👆И помним, что пробелы в условиях bash критически важны. Таким образом, конструкцию можно переписать, с сохранением функциональности: if ! [[ -f "$file" && -r "$file" && -w "$file" ]];then echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi Расшифруем: НЕ (файл регулярный И есть права на чтение И есть на запись). В этой конструкции тоже есть отрицание, но оно уже одно! Конструкцию можно привести к еще более человеческому виду: if [[ -f "$file" && -r "$file" && -w "$file" ]];then : else echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi Здесь отрицание заменено переносом тела if в тело оператора else. ":" необходимо, потому что между if и else должен быть хотя бы один оператор (в данном случае ":" эквивалент оператора true или nop. Можно записать и: if [[ -f "$file" && -r "$file" && -w "$file" ]];then : else echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi 👆 Обратите внимание на ":" после then Но на мой взгляд, в данном случае, читаемость несколько ухудшится. Хотя первая конструкции и остальные конструкции эквивалентны, но отличие все же есть - скорость работы (Особенно, если в качестве операндов будут использованы функции) И зависит эта скорость будет от сценария работы. Если при объединении по ИЛИ первый операнд ИСТИНА, то остальные даже проверяться не будут. При объединении по И все наоборот: остальные проверяться не будут - если первый операнд ЛОЖЬ. Всем работы без багов. 🛠 #bash #linux — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Bash Days | Linux | DevOps
08.06.2026 07:00 · 👁 4.9K
Робот Грин, доверие в ИТ и саботаж ИИ! 👾 10 июня зовём вас на площадку «Сигнал», чтобы узнать и обсудить: 👉 Как создавали робота Грина — танцевальную звезду AI Journey‑2025. 👉 Каким образом доверие, договороспособность и длинный взгляд влияют на успех технологий. 👉 Почему разработчики саботируют ИИ и как это исправить. Встречаемся 10 июня в 18:30 по адресу: г. Самара, ул. Лесная, 23, корп. 2, 2‑й этаж. Регистрация по ссылке. Места ограничены — успейте занять своё! 💚
Bash Days | Linux | DevOps
04.06.2026 15:30 · 👁 6.5K
Переезд инфраструктуры часто откладывают, потому что он требует времени, планирования и отдельной команды специалистов. Но затягивать такие проекты тоже не всегда выгодно. Yandex Cloud открыл программу миграции для компаний, которые переносят свои системы из сторонних облаков, хостингов или собственной инфраструктуры. Программа включает: • грант на 60 дней, полностью покрывающий облачные расходы на миграцию, рассчитанный под ваши задачи • консультации архитектора по проектированию целевой архитектуры; • поддержку персонального менеджера на каждом этапе миграции; Платформа Yandex Cloud объединяет более 75 сервисов и 4 собственных дата-центра для разработки и эксплуатации ИТ-инфраструктуры. Оплата производится только за использованные ресурсы. Подать заявку и перенести инфраструктуру в Yandex Cloud на выгодных условиях можно до 20 июня.
Bash Days | Linux | DevOps
03.06.2026 07:22 · 👁 6K
Si vis pacem, para bellum Все вокруг ноют, что у нас какой-то кризис в айти, рынок перегрет, вакансии схлопываются, а на одно место претендуют сотни кандидатов. Да, так и есть. Искали мы тут QA специалиста, за неделю скинули более 2000 резюме. Это пиздец. Как будто нейронка по вакансии прошлась и нагенерила нам вайтишников. С QA всё понятно, это самый простой вход в наш «цирк абсурда», но вот с другими вакансиями аналогичная ситуация. Причем кандидаты гнут пальцы и не хотят делать тестовые задания, даже за деньги. Разленились падлы, подавай им сразу оффер и оклад 100500 мильонов за нехуй делать с обязательной удаленкой. Да идите вы нахуй! Ладно, я немного про другое хотел тебе написать. Тема довольна избитая — стоит ли сейчас увольняться и прыгать на другую работу, если ты уже официально трудоустроен? Однозначно стоит, если предлагают x3-x4 к текущей ЗП. Но возникает парадокс. Казалось бы, сиди тихо, цени текущее место и не дергайся. Но всегда есть НО. ㅤ Зона комфорта vs Испытательный срок На текущем месте работы, ты знаешь как всё устроено, где что лежит, можешь с закрытыми глазами ориентироваться, в общем царь и бог. Работаешь от силы 2-3 часа в день в комфортном для себя режиме, ездишь по делам и пинаешь хуи. На новом месте работы — баланс придется выстраивать с нуля, неизвестность, снова DODы испытательного срока, новые технологии, коллеги-токсики. И опять же уровень компетенции. Если на предыдущем месте ты уверенный мидл-сеньор, то на новом месте, грейды оцениваются иначе. Коллега сеньор-фронтендер сходил в яндекс на технический собес ииии, барабанная дробь — его скилы оценили как джуновские, соответственно предложили ЗП намного меньше чем он рассчитывал. А всё, потому, что технологии шагнули вперед, а он всё еще на втором ангуляре кнопочки двигает. Ежу понятно, что ключевой фактор это деньги. То есть здесь интересен не столько вопрос «правильно ли я поступаю», сколько вопрос «что именно я продаю и что покупаю». Если смотреть со стороны: Вместе с новой зарплатой получаем новый набор рисков: — испытательный срок — отсутствие привычной зоны комфорта — необходимость реально показывать результат — нагрузку, которая наверняка будет в разы выше Для кого-то лишние 200–300 тысяч рублей в месяц полностью стоят стресса и переработок. Для кого-то возможность спокойно жить, заниматься своими проектами, семьей или просто не выгорать ценнее любой прибавки к зарплате. Есть еще один интересный момент. Если человек годами работает в режиме «пару часов в день», он постепенно теряет понимание своей реальной рыночной стоимости. Внутри компании может казаться, что всё хорошо. Но настоящий уровень всегда показывает только рынок. Переходы позволяют проверить себя об этот рынок. И ты либо разъебёшься об камни реальности, либо выплывешь, всё будет зависеть от твоих скилов и компетенций. Поэтому иногда даже неудачный переход бывает полезнее десяти лет комфортного сидения на одном месте. Возможно, через три месяца ты поймешь, что ошибся. Возможно, через год будешь вспоминать прежнюю работу как слишком уютное болото. А может быть, окажется, что все эти разговоры про кризис в ИТ сильно преувеличены для тех, кто готов брать на себя ответственность и приносить бизнесу результат. Если это действительно x3, а не +20–30%, то я скорее понимаю такие решения. Зарплата в три раза выше способна за 1–2 года создать финансовую подушку, закрыть ипотеку, накопить капитал. Потерять комфорт неприятно, но комфорт — это тоже риск. Особенно в ИТ, где человек может годами находиться в тепличных условиях и не замечать, как рынок уходит вперед. Короче хуй знает. Пишите в комменты свои мысли. Ни к чему не призываю, так, трёп… А ты бы согласились поменять спокойную работу на зарплату в 3-4 раза выше, если бы знал, что работать придется действительно дохуя, да еще и проходить испытательный? Моя стратегия сюда уже не влезла, опубликовал её в блоге 👇 Читать продолжение: https://two.su/nrzhw 🛠 #workflow — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Bash Days | Linux | DevOps
02.06.2026 15:13 · 👁 5.1K
Всем привет. Недавно прилетела неожиданная задача: Организовать скриптом sftp-обмен по со старых версий винды с аутентификацией по ключам. 🔤🔤🔤🔤🔤🔤🔤 С 10+ все понятно. Там и ssh и sftp из коробки есть настройка от linux вообще не отличается. А вот со старыми - проблема. ㅤ Почему до сих пор используются старые версии? Да потому что работают. А выставлять их наружу никто не собирается. Так что пока работает будет работать. Ну, я отвлекся. Итак sftp. Я нашел две программы psftp (из комплекта putty) и winscp. Попробовал обе и psftp пришлось забраковать. Оказалось, она не хочет работать, если не видит файлов в каталоге. (права xw (3)). А winscp.com (не сайт, программа для работы в скриптах из комплекта winscp) работает. Вот ее и будем настраивать. 1. Генерим ключ без парольной фразы с помощью puttygen (из комплекта putty). Желательно выбрать EdDSA(Ed25519(255 bits). Он маленький, и с ним удобно работать. Сохраняем публичный ключ в формате *.ppk . 2. Для того, чтобы публичный ключ нормально читался его нужно привести к однострочному виду: ssh-ed25519 AAAAC3....8cJiPqx0VAOmEI+yy user@host Я редактировал прямо в vim. 3. После этоого вставляем ключ в authorized_keys на серваке. 4. Запускаем winscp.exe и в настройках → хранилище меняем реестр на ini файл. Это нужно сделать, чтобы скрипт работал и от другого пользователя. 5. В WinSCP.exe создать подключение например «servername» указав ключ. В подключении можно и начальный каталог указать сразу. 6. Обязательно протестировать соединение приняв fingerprint. 7. Создать скрипт обмена script.sftp типа: open servername put filename get filename1 bye 8. Запуск скрипта обмена: C:\prog\WinSCP\winscp.com /ini=C:\prog\WinSCP\WinSCP.ini /logsize=2*100K /script=C:\prog\WinSCP\script.sftp /log="C:\prog\WinSCP\script.sftp.log" /console 9. Иногда, Скрипт, при запуске из какой-нибудь программы типа 1c не срабатывает. Тогда строку пункта 8 проще записать в какой-нибудь servername.bat и выполнять его из программы через cmd: c:\windows\...\cmd.exe /c C:\prog\WinSCP\servername.bat Вот тебе и винда, такая простая задача, и столько гемора при реализации. Да, кстати, на десятке тоже работает. Проверил. Всем работы без багов. 🛠 #devops #windows — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Bash Days | Linux | DevOps
02.06.2026 13:00 · 👁 4.9K
Китайские LLM продолжают завоевывать рынок За пару месяцев вышли сразу несколько сильных open source релизов: GLM-5.1, Kimi K2.6, DeepSeek V4 Pro. Что интересного: ▶️GLM-5.1 — мощная модель для Agentic AI: умеет автономно выполнять задачи до 8 часов и поддерживает сложные сценарии. ▶️Kimi K2.6 делает ставку на мультимодальность и Agent Swarm-подход, позволяя оркестрировать до 300 субагентов. ▶️DeepSeek V4 Pro выделяется контекстом до 1 млн токенов и гибридной архитектурой внимания для эффективной работы с длительным контекстом. Как внедрить в проекты: 📍 Все модели доступны в каталоге Evolution Foundation Models от Cloud.ru. В сервисе уже 45+ популярных LLM. Модели готовы к использованию — не нужно развертывать инференс и писать код, достаточно подключиться через API. 👉Протестируйте новые модели в личном кабинете👈
Bash Days | Linux | DevOps
25.05.2026 14:06 · 👁 9.5K
Когда начинаешь вкатываться в Ansible, кажется что loop нужен вот прям всегда и везде. Но это не так. ㅤ Многие пишут: - name: install packages ansible.builtin.apt: name: "{{ item }}" state: present update_cache: yes loop: "{{ packages }}" А переменная packages содержит список пакетов на установку. И вроде тут всё ок, НО apt вызывается для каждого пакета отдельно, а update_cache может дёргаться несколько раз. Это избыточно и ломает заложенные паттерны. Поэтому правильнее будет сделать так: - name: install packages ansible.builtin.apt: name: "{{ packages }}" state: present update_cache: yes Здесь apt получает сразу список пакетов, кеш обновляется один раз, установка идёт одной транзакцией. Получается меньше оверхеда, всё происходит быстрее и логичнее. В первом случае это «хак», ты делаешь loop из одного элемента, внутри которого уже лежит список. Главная мысль тут — если модуль умеет принимать список — loop нахуй не нужен. Loop нужен там, где логика на каждый элемент отдельная: - разные параметры - условия - шаблоны - создание пользователей - файлы - сложные таски Короче не заLOOPайся и будет тебе счастье. Ну а если хочешь стать гуру, я всегда жду тебя здесь. 🛠 #devops #linuxfactory #ansible — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Bash Days | Linux | DevOps
25.05.2026 10:30 · 👁 8.1K
Стрим о защите контейнеров, который нельзя пропустить Что сейчас ломают в контейнерных средах и как от этого защищаться. На стриме 28 мая в 11:00 разберем ключевые угрозы, покажем ИИ и другие ключевые новинки Kaspersky Container Security, которые уже меняют игру в контейнерной безопасности. Спикеры — эксперты «Лаборатории Касперского» и платформы «Штурвал». Чтобы не пропустить, регистрируйтесь.
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.