DevOps Portal | Linux
前往频道在 Telegram
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3P8kFH
显示更多📈 Telegram 频道 DevOps Portal | Linux 的分析概览
频道 DevOps Portal | Linux (@loose_code) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 13 744 名订阅者,在 技术与应用 类别中位列第 9 246,并在 俄罗斯 地区排名第 47 183 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 13 744 名订阅者。
根据 31 十月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 653,过去 24 小时变化为 8,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 18.75%。内容发布后 24 小时内通常能获得 10.49% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 2 576 次浏览,首日通常累积 1 441 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 8。
- 主题关注点: 内容集中在 devops, kubernetes, docker, linux, ebpf 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Работаем с @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
凭借高频更新(最新数据采集于 01 十一月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
13 744
订阅者
+824 小时
+477 天
+65330 天
帖子存档
13 744
systemd: как писать юниты с элегантной перезагрузкой
Разработка системы с элегантным завершением работы может оказаться той ещё пляской с бубном. В идеальном мире каждый сервис управлялся бы юнитом systemd. ExecStart запускала бы процесс, обрабатывающий SIGTERM, а ExecStop оповещало бы процесс и осуществляло блокировку, которая бы корректно завершала процесс и его ресурсы.
Однако многие программы завершаются некорректно, а то и вовсе сбивают все настройки при закрытии. В этой статье мы рассмотрим поведение systemd при завершении работы и методы написания юнитов systemd для выборочной очистки (custom cleanup) перед закрытием.
👉 https://www.psdn.io/posts/systemd-shutdown-unit/
👉 DevOps Portal
13 744
Пять GitHub проектов, которые помогут вам стать лучшим инженером DevOps
Давненько у нас не было топовых репозиториев. Исправляемся:
🔹 Active Directory Exploitation Cheat Sheet
Памятка по эксплуатации Active Directory.
🔹 k'exp - Kubernetes Explorer
Предназначен не для управления продом, а для изучения Kubernetes через визуализацию. Может отражать состояние вашего кластера в режиме реального времени. Есть возможности для разработки приложений, контроллеров и операторов.
🔹 Configu
Простой, универсальный стандарт для управления и совместной работы с конфигурациями ПО.
🔹 SadServers
Сервис для практики troubleshooting на Linux-серверах. Предоставляется полный доступ к серверу Linux через SSH. Нужно устранить поставленную проблему в течение ограниченного времени.
🔹DockerCheatSheet
Шпаргалка по Docker – от установки и запуска контейнера до работы в сети и безопасности.
👉 DevOps Portal
13 744
Repost from Ты в тренде или уходи
⚡️ ИТОГИ УЖЕ ЗАВТРА. Конкурс с призами на 700 ТЫСЯЧ рублей подходит к концу. Дарим:
1. iPhone 16 2. AirPods Pro 2 3. Самый свежий Samsung на Android 4. PlayStation 5 Pro 5. Nintendo Switch 6. ПК с RTX 4060 7. AirPods Max 8. Игровая мышь Razer Viper Pro 2 9. Наушники Razer Barracuda 10. $200 на Steam— Просто подпишись на Бэкдор и Ты в тренде — Нажми кнопку «Участвую» — ВСЁ! Все призы отправим бесплатно, платить ни за что не нужно. Итоги крупнейшего конкурса 2025 года ждите 21 января 23:59
13 744
OpenCost — инструмент мониторинга затрат с открытым исходным кодом для Kubernetes
Модели OpenCost дают представление о текущих и прошедших расходах Kubernetes и распределении ресурсов. Эти модели обеспечивают прозрачность затрат в средах Kubernetes, которые поддерживают множество приложений, команд, отделов и т.д.
👉 https://github.com/opencost/opencost
👉 DevOps Portal
13 744
Если любишь унижения от железного друга, это просто must-have
Включаем "режим унижений". Суть его проста: ошибаешься с паролем при использовании sudo — система выдаёт порцию "тёплых слов" ❤️
Активируется добавлением в файл /etc/sudoers (либо в /etc/sudoers.d/fuck.conf) строчки:
Defaults insults
А после этого попробуй выполнить от пользователя:
sudo apt update
и ошибись с паролем. Получишь в ответ:
Take a stress pill and think things over.
You fucking stupid shit!
My mind is going. I can feel it.
Realy? Are you on drugs?
А если базовых оскорблений недостаточно, кастомизируй через:
Defaults badpass_message="Ты там в порядке, вообще?"
А кто хочет пойти ещё дальше, может собрать свой bash-скрипт с выборкой «теплых слов» для рандомного вывода. Например:
#!/bin/bash
messages=("Неверный пароль! Твой мозг там как, цел?"
"Еще раз и я в логах всё твоё позорище сохраню."
"Ты серьезно? Ну хоть капслок проверь...")
echo "${messages[$RANDOM % ${#messages[@]}]}"
Режим точно не для слабонервных, но если вам не хватает эмоций в консоли — милости просим😈
👉 DevOps Portal13 744
Чем отличается команда rm от unlink?
Обе эти команды умеют удалять, но в 99% используется именно rm, потому что про unlink вы либо не слышали, либо rm с головой хватает.
Есть ошибочное мнение, что unlink предназначен для удаления лишь ссылок — команда вполне может удалять обычные файлы. А если углубиться, то весь процесс удаления в Linux, это удаление ссылок.
У unlink есть всего лишь два ключа запуска help и version. Очень ограниченный инструмент, но чем инструмент проще, тем проще его синтаксис.
# unlink /tmp/hardlink
# unlink /tmp/file
Софт очень молчаливый — после удаления, он промолчит и ничего не выведет на экран.
Команда unlink использует системную команду unlink, в то время как команда rm использует системный вызов unlinkat. Оба системных вызова практически одинаковы.
Unlink не умеет работать с wildcard и globbing шаблонами. Так же вы не сможете с помощью нее удалить каталог.
Запустим команду и пытаемся насильно удалить файл которого нет в каталоге:
rm -f test.txt
И получаем - НИЧЕГО. То есть rm -f не вернул ошибку, что файл отсутствует. А если сделать так:
unlink test.txt
получим ошибку:
unlink: cannot unlink 'test.txt': No such file or directory
То есть если нужно будет обработать результат выполнения команды rm -f, то будет непонятно, существовал ли вообще файл.
С unlink можно гибче обрабатывать эксепшены в скриптах. А еще при использовании команды unlink отсутствует проверка безопасности. Она удалит файл, защищенный от записи. Хотя современная версия rm теперь тоже так умеет.
Небольшой секрет: если нужно, чтобы файл никто не смог удалить, включая root:
chattr +i test.txt
chattr позволяет устанавливать и отключать атрибуты файлов, на уровне файловой системы не зависимо от стандартных (чтение, запись, выполнение).
Ключ i - сделает файл неизменяемым. Чтобы снять с файла этот аттрибут, в команде которая выше, замените знак «+» на «-».
👉 DevOps Portal13 744
Требуются парни и девушки в возрасте 19–40 лет, желающие работать в сфере IT.
Опыт в программировании не нужен.
Завтра запускаем бесплатный онлайн-интенсив по Frontend-разработке, где будем показывать, как разрабатывать сайты и веб-приложения используя ChatGPT.
За 7 дней обучения ты:
1. Создашь полноценный веб-сайт на HTML и CSS;
2. Оживишь страницу с помощью JavaScript;
3. Используешь фронтенд-фреймворк Angular;
4. Подключишь Backend и загрузишь сайт на хостинг;
5. Получишь советы по доработке своего проекта;
6. Научишься использовать ChatGPT и Giga во Frontend-разработке;
7. Узнаешь 9 способов найти первый заказ на фрилансе даже без опыта.
А главное, ты увидишь, что разрабатывать сайты и приложения не так сложно, как кажется. И поймёшь, как тебе развиваться в этой профессии, чтобы уже через пару месяцев зарабатывать от 1000$ на вёрстке сайтов.
👉 Проскочить на интенсив бесплатно
🔥 С 2019 стабильно помогаем с обучением, практикой, зарабатывать на фрилансе и проходить собеседования.
13 744
В этом репозитории вы найдете Dockerfile для 13 языков программирования
Для каждого образа Docker имеется свой Dockerfile, содержащий набор инструкций, необходимых для его создания. В этом файле указывается, что должно быть в образе, какие команды, зависимости и процессы он будет содержать.
➖ React
➖ NodeJS
➖ Python
➖ Golang
➖ Java Spring Boot
➖ Java Quarkus
➖ ASP.NET Core
➖ Ruby
➖ Rust
➖ PHP Laravel
➖ Dart
➖ R Studio
➖ Contact
👉 https://github.com/hoalongnatsu/Dockerfile
👉 DevOps Portal
13 744
Как узнать имя функции из самой функции
#!/bin/bash
deploy() {
# здесь хотим получить "deploy"
}
Для получения имени функции из самой функции, можно воспользоваться переменной ${FUNCNAME[*]}.
Элемент с индексом 0 это имя любой выполняемой функции в данный момент.Элемент с самым большим индексом будет называться main.
deploy() {
echo ${FUNCNAME[0]}
}
Выведет название функции: deploy
Переменная FUNCNAME существует только во время выполнения скрипта. Если самостоятельно задать переменную FUNCNAME, это ничего не даст и все равно выведется эталонное имя функции.
При обращении к массиву без индекса, будет возвращен первый элемент массива текущий функции. Но так же будет содержать все остальные функции в стеке вызова.
Например:
exp1() {
echo ${FUNCNAME}
}
exp2() {
echo ${FUNCNAME[*]}
}
Первая функция выведет: exp1, а вторая выведет весь массив функции: exp2 main.
Не обязательно указывать индекс, все будет корректно работать и так. Это больше как правила хорошего тона. Как точка с запятой в конце строки, которая не влияет на функционал и никак не интерпретируется.
В zsh это называется funcstack, это тот же массив всех функций скрипта.
deploy() {
echo $funcstack[1]
}
Еще переменная FUNCNAME используется с BASH_LINENO и BASH_SOURCE, об этом можно почитать в официальной документации.BASH_SOURCE - переменная, содержит путь к исходному файлу оболочки, полезна при отладке и анализе ошибок. BASH_LINENO - переменная, содержит номер строки на которой произошла ошибка в текущем скрипте. 👉 DevOps Portal
13 744
⚡️ Море IT-информации, а полезное найти все сложнее?
Мы собрали лучшие Telegram-ресурсы, которые помогут тебе развиваться:
📱 Python — от фишек языка и уроков, до практических примеров и готовых скриптов.
👩💻 Linux\DevOps — всё для админов и разработчиков, которые хотят совмещать Linux и программирование.
📱 GitHub — лучшие находки с гитхаба и просторов open-source.
📱 IT Курсы — более 2ТБ проверенных курсов по Python, Devops, Backend, Frontend и др...
🗂 CodeVault — книги, скрипты, гайды и шпаргалки для разработки.
🔥 Не стоит ждать, заходи прямо сейчас, чтобы не упустить!
13 744
Лучшие практики работы с Docker
Никогда не запускайте контейнер от имени root.
Запуск от имени root внутри контейнера означает запуск от имени root на хосте Docker. Если злоумышленник получит доступ к вашему контейнеру, он получит все привилегии root и сможет совершать атаки на хост.
👉 DevOps Portal
13 744
Полный рабочий процесс CI/CD с Skaffold для вашего приложения
Современный способ построения полного рабочего процесса от локального до продакшена с помощью Skaffold и Gitlab на кластере Kubernetes для снижения когнитивной нагрузки и операционной сложности в стеках приложений.
🔛 Часть I
https://blog.equationlabs.io/cicd-workflow-with-skaffold-for-your-application-part-i
🔛 Часть II
https://blog.equationlabs.io/how-to-build-a-cicd-workflow-with-skaffold-for-your-application-part-ii
🔛 Часть III
https://blog.equationlabs.io/how-to-build-a-cicd-workflow-with-skaffold-for-your-application-part-iii
👉 DevOps Portal
13 744
😈 Senior-специалист группы безопасности Касперского создал крутейший канал про ИБ
Благодаря простым примерам даже новичок поймет основы информационной безопасности и научится искать уязвимости.
Присоединяйтесь: @infosec
13 744
Popeye — утилита, которая сканирует работающие кластеры Kubernetes и сообщает о потенциальных проблемах с развёрнутыми ресурсами и конфигурациями.
👉 DevOps Portal
13 744
#Cобеседования
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
Когда файл удален т. к. файловый дескриптор «держит» его.
Ищем файл через:
lsof -a +L1 | grep var | grep httpd
При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.
Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
👉 DevOps Portal
13 744
⚡️ 72% программистов не имеют среднего образования
Наше поколение — самоучки, а изучить любое IT-направление легко благодаря нашему ресурсу с полезными материалами:
👩💻 JavaScript 👩💻 React
👩💻 Python 👩💻 Docker
👩💻 Java 🖼️ Spring
👩💻 C# 👩💻 Game Dev
👩💻 С/С++ 👩💻 DevOps
👣 GoLang 🖼️ Redis
👩💻 Kotlin 👩💻 Mob Dev
🖼️ PHP 🖥 SQL
🖼️ Swift 👩💻 Kubernetes
Пользуйтесь, потом сами себе спасибо скажете!
13 744
KubePug
Загружает сгенерированный файл data.json, содержащий информацию об устаревании API Kubernetes
Проверяет текущий кластер Kubernetes или входные файлы, проверяя, существуют ли объекты в этих устаревших версиях API, позволяя пользователю проверить перед переносом
Особенности
🔛 Может запускаться в кластере Kubernetes, используя kubeconfig или текущий кластер
🔛 Может выполняться с другим набором манифестов/файлов
🔛 Позволяет указать целевую версию Kubernetes, подлежащую проверке
🔛 Предоставляет заменяющий API, который следует использовать
🔛 Сообщает версии, что API устарел или удален, в зависимости от версии целевого кластера
Как использовать
Запустите
kubectl krew install deprecations
Как использовать с Helm
Если хотите проверить сгенерированные манифесты с помощью Helm, можно запустить так:
helm template -f values.yaml .0 | kubepug --k8s-version v1.22.0 --input-file=-
Измените аргументы в kubepug (и шаблоне Helm) по своему желанию
👉 DevOps Portal13 744
Держите пять классных ресурсов, которые помогут разобраться в GIT
👉 Learn Git Branching — это интерактивный учебник по Git, направленный на закрепление теории прохождением наглядной практики.
👉 Oh My Git! — игра для обучения Git. Там визуализируются внутренние структуры репозиториев. Игра опенсорс, так что можно покопаться в исходниках
👉 Git How To — это интерактивный тур, который познакомит вас с основами Git
👉 Pro Git book — онлайн учебник по Git, который предлагает подробные руководства и документацию по всем аспектам работы с системой контроля версий
👉 Git Gud — CLI-игра с различными уровнями сложности, которая поможет освоить Git от базового уровня до профи
👉 DevOps Portal | #ресурсы
13 744
Учишь Python, но как дело доходит до собственного кода — всё, кирдык? 😥
На форумах только одно: «Больше практиковаться!» А толку? Ноль понимания и никакой поддержки от профи…
Плавали - знаем)) Поэтому специально для тебя - чат для Python-щиков 🤝
Что получишь?
1️⃣ Сможешь задавать любые вопросы без страха и осуждения и получать ответы за минуты, а не часы поиска в инете
2️⃣ Регулярные плюшки в виде стримов от препода с 15-ти летним опытом
3️⃣ Общение с единомышленниками и заряд мотивации
➡️ А еще, забирай в закрепе БЕСПЛАТНЫЙ вводный курс по Python
Короче, всё для прокачки! Залетай к нам — ссылка на чат (тык)
13 744
Команды systemd для управления Docker
Для запуска Docker многие дистрибутивы Linux используют systemd. Для запуска сервисов используется команда systemctl. Если ее нет, следует использовать команду service.
$ sudo systemctl start docker
$ sudo service docker start
Чтобы добавить сервис в автозагрузку, либо убрать его:
$ sudo systemctl enable docker
$ sudo systemctl disable docker
Для проверки параметров запуска сервиса и их изменения:
$ sudo systemctl edit docker
Просмотра связанных с сервисом журналов:
$ journalctl -u docker
👉 DevOps Portal