LinuxCamp | DevOps – Telegram
LinuxCamp | DevOps
14.1K subscribers
197 photos
7 videos
302 links
Обо мне: C/C++/Linux эксперт. Говорим про разработку, Linux, DevOps, сети и администрирование.

Админ (реклама): @XoDefender
Чат: @linuxcamp_chat

Менеджер: @Spiral_Yuri
Биржа: https://telega.in/c/linuxcamp_tg

№ 6327102672
Download Telegram
Amazon пару дней назад:

«Увольняем 40% девопсов.
AI займёт их рабочие места»


После этого AWS лежит... Под такие решения надо хорошо подготовить инфраструктуру, иначе произойдет большой БУУУММ

➡️ Статья

LinuxCamp | #news #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁96👏114🔥2💊1
Мониторинг с веб-версией за 1 команду

Когда нужно сделать серьезный мониторинг, пригодится инструмент, который показывает всё сразу: загрузку процессора, памяти, сети, дисков, температуру и даже Docker-контейнеры. Это glances.

Что это такое

glances - системный монитор с web-интерфейсом и консольным отображением из коробки. Он написан на Python, работает в Linux, macOS и Windows, и адаптируется под размер терминала, показывает ровно столько данных, сколько помещается.

Запуск


glances


Откроется интерактивная панель, где видны все метрики системы в реальном времени.
Можно листать стрелками, сортировать процессы и даже отслеживать температуру и I/O.

Web-интерфейс

Можно смотреть метрики прямо из браузера:


glances -w


После запуска открой http://<ip>:61208 и получишь панель мониторинга в реальном времени.

Установка


sudo apt install glances


или, если хочешь последнюю версию:


pip install glances


Дополнительно

glances поддерживает экспорт данных в Prometheus, InfluxDB, Elasticsearch и MQTT, удобно для централизованного мониторинга.

Вывод

glances - это как htop, iostat, sensors и netstat в одном окне. Лёгкий, понятный и идеален, если хочешь быстро понять, что происходит с системой.

LinuxCamp | #utils
👍3711🔥11
Куда делось место на диске?

Иногда du -h показывает тонны цифр, но понять, где заполнена память всё равно сложно. Для этого есть dust - современная замена du, которая красиво визуализирует использование диска прямо в терминале.

Что делает dust

Он сортирует директории по размеру и рисует дерево, где видно, кто занимает больше всего места.


dust


Вывод читается с первого взгляда: чем глубже, тем меньше папка, а самая тяжёлая подсвечивается ярче.

Примеры

Показать топ по текущей директории:


dust .


Посчитать размер домашней папки без скрытых файлов:


dust -d 1 ~


Показать только верхние 10 результатов:


dust -n 10


Установка


sudo apt install dust


Вывод

dust - это du, которому сделали интерфейс для людей. Он помогает быстро понять, куда уходит место, и очистить диск без паники.

LinuxCamp | #utils
👍53🔥1211
По слухам из очень "надежных" источников. После того, как упал AWS, попросили того самого (единственного) разраба, который координирует ИИ переподнять сервера.

Картина выглядела примерно так 📤

LinuxCamp | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁70🔥5🌚41🤔1💯1
Передать файл по одному слову

Можно передать файл, не зная IP, SSH-доступа или домена сервера получателя. Утилита croc сама установит защищённое соединение и мгновенно отправит файлы или текст прямо из терминала, используя шифрование и одноразовый код

Пример использования

Отправитель запускает:


croc send magadrovosex.omg


После выводится одноразовый код. Получатель вводит:


croc <выданный код>


И всё! Файл мгновенно передаётся по защищённому каналу P2P (крипта, арбитраж, темки), без возни с адресами и ключами

Установка


curl https://getcroc.schollz.com | bash


Почему это круто

croc не требует FTP, SCP, VPN, использует end-to-end шифрование (AES-256), работает между любыми ОС и можно пересылать даже директории

Микро-лайфхак

Чтобы не палить одноразовый код в истории, запусти просто croc в терминале и введи код интерактивно. Но также можно команду с пробела (в большинстве shell-ов это не сохранит её в history)

Вывод:

croс - гига-удобная утилита для передачи файлов вообще ничего не понимая в этой жизни, нужно написать 2 очень простые команды и очень аккуратно скопировать и вставить одноразовый код.

Выключайте мозги, товарищи! Скоро ai нас уничтожит и мозги нам не понадобятся

LinuxCamp | #utils
6🤔3311🔥6👍4🐳2🙈1
Open 3D Engine 25.10

Немного вводных

Open 3D Engine - игровой движок, пригодный для разработки современных игр класса AAA и высокоточных симуляторов.

Исходный код движка O3DE был открыт в июле 2021 года компанией Amazon, сам код написан на C++.

Из нового в 25.10 (для linux)

— Размер установочного пакета сокращён на 40%

— Обеспечена совместимость со стандартом C++ 20

— MOC (Masked Occlusion Culling) экономит ресурсы, не рисуя то, что перекрыто другими объектами

— Motion Blur добавляет размытие для движущихся объектов

— В модуль OpenXR добавлены компоненты для контроллеров виртуальной реальности

Детальная статья по ссылке

LinuxCamp | #news
👍22🔥105🥴1
This media is not supported in your browser
VIEW IN TELEGRAM
И все это для того, чтобы при загрузке произошёл очередной "Kernel panic", и надо было подключить ноутбук с Windows, чтобы найти решение.

Особенно актуально для любителей Арча))

LinuxCamp | #memes
1😁41👍127🤪1💊1
Менеджер паролей для linux

Если не хочешь хранить пароли в .env или светить их в коде, попробуй pass. Это минималистичный менеджер паролей, который хранит каждый пароль в отдельном GPG-файле, зашифрованном твоим GPG-ключом.

Установка:


sudo apt install pass gpg
gpg --gen-key
pass init <имя_ключа>


Команда pass init связывает хранилище с твоим ключом, только им можно будет расшифровать пароли.

Добавление и просмотр:


pass insert github.com
pass show github.com


Пароли лежат в ~/.password-store. Это обычные файлы, но зашифрованные GPG. Структура каталогов повторяет иерархию имён, поэтому всё выглядит логично и читаемо.

Использование в скриптах:

Так можно передавать пароли в CI или автоматизацию без риска утечек, они подгружаются только во время выполнения.


#!/bin/bash
DOCKER_PASS=$(pass show dev/docker)
echo "$DOCKER_PASS" | docker login -u myuser --password-stdin


pass легко интегрируется в CI, shell-скрипты и git. Все шифруется твоим ключом, все под твоим контролем.

LinuxCamp | #utils
1👍32🔥177🥴1
Запуск Windows-приложений на Linux: Wine

Если ты сидишь на Linux, но время от времени нуждаешься в каких-нибудь программах, которые есть только под винде — используй Wine

Он ничего не эмулирует, он транслирует код из одной среды, в другую - переводит вызовы Windows API в POSIX-вызовы "на лету" — из-за этого программы работают быстрее и потребляют меньше ресурсов.

Отсюда и следует его полное название, которое является акронимом - Wine Is Not an Emulator.


Проект запустили ещё в 1993 году, а стабильный релиз вышел в 2008. Это полностью открытое ПО, которое поддерживают компании вроде CodeWeavers.

Важно что:

— не всё работает идеально, иногда придётся повозиться с настройками
— стабильность зависит от конкретной программы и драйверов

Подробный гайд по установке и использованию wine.

LinuxCamp | #utils
🔥269👍9🤔2
perf: микроскоп для производительности ядра

perf - инструмент, встроенный прямо в ядро Linux. Он показывает, куда утекает производительность: какие функции жрут CPU, сколько контекстных переключений, какие системные вызовы самые медленные. Не требует установки пакетов, а просто:


sudo perf top


и ты видишь, где реально горит процессор.

Замер производительности программы

Хочешь понять, где тормозит твой код запускаешь:


sudo perf record -g ./my_program
sudo perf report


Первая команда собирает стек вызовов с нагрузкой. Вторая показывает отчёт: на какие функции ушло больше всего времени.

Анализ системных вызовов

Чтобы увидеть, что делает процесс на уровне ядра:


sudo perf stat -p $(pidof nginx)


Выведет количество системных вызовов, переключений контекста и кэшей. Это то, что top не покажет.

Вывод

perf - инструмент, который показывает, чем занята твоя система. Его используют, когда нужно найти горячие участки кода, понять, куда уходит процессорное время в базе данных, или оптимизировать Nginx и PostgreSQL под реальные боевые нагрузки.

LinuxCamp | #utils
2🔥47👍187
Как поделиться терминалом по ссылке и без SSH?

ttyd - утилита, которая превращает твой терминал в веб-страницу. Запускаешь одну команду и можешь открыть консоль прямо в браузере.

Установка


sudo snap install ttyd --classic
ttyd bash


Открываешь http://<ip>:7681 и видишь свой терминал в браузере. По умолчанию он только для чтения, но если добавить флаг -W, можно делать его интерактивным.

Зачем это нужно

С ttyd можно делиться консолью на демо, показывать командам CI, смотреть логи контейнеров или следить за своим ИИ-агентом прямо с телефона через Tailscale - без SSH и без клиента. Например:


ttyd -p 7681 sh -lc 'docker logs -f backend'


Теперь логи бекенда доступны по ссылке

Один терминал для всех

Чтобы все видели одну и ту же сессию (а не каждый свой терминал), можно обернуть в tmux:


tmux new -s demo
ttyd tmux attach -t demo


Теперь все участники смотрят один экран. Добавь -W, если хочешь дать им право писать команды.

Вывод

ttyd превращает обычный shell в веб-интерфейс без SSH. Но нельзя забывать о безопасности! Не давайте права на запись кому попало.

LinuxCamp | #utils
1👍44🔥86
This media is not supported in your browser
VIEW IN TELEGRAM
Умный CLI файловый менеджер: nnn

nnn - миниатюрный, но мощный терминальный файловый менеджер, который почти не требует настройки:

— Управляется с клавиатуры: стрелки, / для поиска, Tab для контекстов, q для выхода

— Поддерживает фильтрацию, пакетное переименование, анализ диска, закладки и сессии

— Интегрируется с Vim/Neovim, копирует пути в буфер, умеет работать с архивами и отправлять файлы в корзину

— Работает везде: Linux, macOS, BSD, Windows (WSL), Haiku, Termux (Android)

— Приватный, POSIX-совместимый, без сбора данных и лишних зависимостей

— Расширяется плагинами: превью, миниатюры, монтирование, загрузка в облако и многое другое

Совет:

Если вы сильно привыкли к ls, делаем alias и используем nnn:


alias ls='nnn -de'


Ссылки:

1) GitHub проекта
2) Туториал по использованию тулзы

LinuxCamp | #utils
👍33🔥125❤‍🔥1
fio: тестируем скорость дисков

Что делает fio:

fio - утилита для нагрузочного тестирования ввода-вывода (input-output). Она показывает, сколько твой диск реально выдаёт: IOPS, MB/s и latency при разных сценариях чтения и записи.

Установка:


sudo apt install fio -y


Пример проверки скорости:


fio --name=test \
--ioengine=io_uring \
--rw=randread \
--bs=4k \
--size=1G \
--numjobs=4 \
--runtime=30s \
--group_reporting


fio создаёт четыре параллельных задачи, которые читают случайные блоки по 4 KB из 1 GB файла в течение 30 секунд, используя движок io_uring. Результат: сколько твой диск может обработать случайных операций за секунду.

Зачем это нужно:

Когда настраиваешь базу данных, файловый сервер или просто хочешь понять, стоит ли менять SSD, то fio покажет, где узкое место: в скорости, в задержках или в количестве параллельных операций.

Вывод:

fio - это конкретные цифры, по который можно делать выводы, основанные не на ощущениях. С ним легко увидеть, насколько быстро твоя система справляется с реальной нагрузкой.

LinuxCamp | #utils
🔥34👍134
Нет места, а оно есть

du/dh показывает, что место в файловой системе еще есть, а записать ничего не возможно, т.к. нет места.

Места полно, а записать нельзя


Симптом:

df -h показывает, что место есть, а при записи: "No space left on device".

Почему так бывает

Когда удаляешь файл, его данные не исчезают мгновенно. Если какой-то процесс всё ещё держит открытый дескриптор на этот файл, ядро не освобождает место, пока процесс не закроет его. Получается: файла вроде нет, а гигабайты всё ещё заняты.

Как проверить

Посмотреть, кто держит удалённые файлы:


lsof | grep deleted


или покороче:


lsof +L1


В списке найдёшь процессы и пути к призрачным файлам.

Как починить

Заверши процесс, который держит файл:


kill -9 <pid>


или перезапусти службу, если это, например, nginx, postgres или docker. После этого место действительно освободится.

Вывод

Удалённый файл жив, пока его кто-то держит. df/du не всегда дают полную реальную картину происходящего.

LinuxCamp | #storage
2🔥36👍235
Когда процессу не дают дышать

Симптом:

Приложение падает с ошибкой, а ты смотришь вроде ресурсов полно.


Too many open files


Виноват ulimit

Каждый процесс в Linux живёт в рамках ограничений ядра - ulimits. Одно из них nofile, максимум открытых файловых дескрипторов. Файл, сокет, pipe - всё это дескрипторы.

Посмотреть текущие лимиты:


ulimit -n


увидишь, например:


1024


Это значит, что твой процесс не может держать больше 1024 открытых файлов и соединений.

Как увеличить

Иногда это нужно для высоконагруженных сервисов, например, база данных, reverse-proxy или API, который держит тысячи открытых соединений. Если лимит слишком маленький, то приложение начнёт падать на пике трафика.

Временно (для текущей сессии):


ulimit -n 65535


Навсегда — в /etc/security/limits.conf или /etc/systemd/system.conf:


* soft nofile 65535
* hard nofile 65535


Если сервис под systemd, добавь в unit-файл:


[Service]
LimitNOFILE=65535


и перезапусти:


systemctl daemon-reexec
systemctl restart <service>


Осторожно с лимитами

Увеличивать можно, но без фанатизма. Слишком высокий nofile при множестве активных процессов может съесть память и дескрипторы ядра, Особенно если приложение не закрывает файлы корректно. Поэтому лучше провести ревизию приложения вначале.

Вывод

Too many open files - это не баг, а защита ядра. Если приложение задыхается, то можно увеличить лимиты. Главное понимать почему в приложении появляется данная проблема

LinuxCamp | #utils
🔥27👍147❤‍🔥1
ИИ добрался и до операционок: SUSE и Red Hat

Enterprise-лидеры встраивают ИИ в основу операционной системы. Новые фичи на примере недавнего анонса SUSE:

MCP (Model Context Protocol) — реализовали открытый стандарт связи ИИ с системой.

— ИИ может действовать: читать логи, предлагать/выполнять откаты, генерить конфиги — через Cockpit или CLI.

— Поддержка любого LLM-провайдера. Можно использовать свои модели.

Что будет?

Вот так будет выглядеть пример взаимодействия с ОС, к которому мы идем:


$ ai-troubleshoot nginx


— ИИ анализирует "journalctl, nginx -t, ss -tulpn, df -h" и выводит:

«Порт 80 занят apache2... Остановить apache и перезапустить nginx?»


LinuxCamp | #news
🤔24👍10👾5🤯2😐2👏1
Насчет небезопасной памяти не в курсе, но точно знаю, что в одной комнате тут есть причина множества багов в тулзах, которые переписывают на Rust)

Из нового: замена в дистрибутиве Ubuntu 25.10 инструментария GNU Coreutils на Rust Coreutils (uutils) привела к нарушению работы скрипта для автоматической проверки наличия обновлений пакетов.

Инициатива наказуема)

LinuxCamp | #news
😁33👍10
Сборка дистра по исходникам: Linux From Scratch

Что такое LFS?

Это руководство, где ты собираешь рабочую систему вручную: от компиляции ядра до настройки загрузчика и пользовательских утилит.

Зачем это нужно?

— Глубокое понимание структуры Linux: /bin, /sbin, /etc, init, systemd, libc, toolchain…

— Полный контроль: только то, что ты выбрал — никаких лишних пакетов и зависимостей.

— Основа для своих embedded-проектов, роутеров, серверов или учебных систем.

После LFS можно пойти дальше: Beyond Linux From Scratch (BLFS) — добавляй графику, браузеры, DE и даже Docker

Это не про эффективность, а про понимание - как варить кофе в турке, когда все вокруг используют кофемашины)

LinuxCamp | #resources
👍44🔥102
Моя общага примерно также выглядела, когда мне по работе завезли туда Ubuntu сервер и систему на AltLinux 🚽

LinuxCamp | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31😁178👍4
Одна ошибка и ты ошибся: Suicide Linux

Suicide Linux – это не полноценный дистрибутив, а Debian пакет, который наказывает пользователя за любые опечатки в командах удалением данных с диска:


sudo rm -rf /


"Это уже шестой раз, когда я переустанавливаю систему... Прощай, suicide linux!"

sudo atp remove suicide-linux
"О нет, опять"


LinuxCamp | #resources
1🤣685😁5🙈2
Когда память закончилась, но сервер ещё живёт

Сценарий:

На голом сервере запущен сервис с утечкой памяти. Что произойдёт, когда память закончится?

Если включён swap

Система начнёт выгружать редко используемые страницы в своп, по сути, использовать диск как "медленную память". Процессы будут жить, но всё станет жутко медленным - диск вместо оперативы и большие задержки.

Посмотреть, включён ли swap:


swapon --show


или просто:


free -h


Если swap выключен

Когда физическая память закончится, ядро запустит OOM Killer (Out Of Memory Killer) - это специальный механизм, который выбирает и убивает процессы, чтобы высвободить память. Умрёт не обязательно твой сервис, система решает сама, кого "пожертвовать", ориентируясь на приоритет oom_score.

Посмотреть, как она видит твоё приложение:


cat /proc/<pid>/oom_score


Как OOM выбирает жертву

Он не смотрит на виртуальную память, а только на реально используемую (resident set size, RSS). Именно физическая память решает, кому жить, а кому нет.

Вывод

Если память утекает Linux не спасёт, он просто решит, кого первым застрелить. Swap продлит агонию, OOM поставит точку.

LinuxCamp | #storage #ram
👍368🔥7