LinuxCamp | DevOps
Обо мне: C/C++/Linux эксперт. Говорим про разработку, Linux, DevOps, сети и администрирование. Админ (реклама): @XoDefender Чат: @linuxcamp_chat Менеджер: @Spiral_Yuri Биржа: https://telega.in/c/linuxcamp_tg РКН: https://clck.ru/3RWA3C
Ko'proq ko'rsatish📈 Telegram kanali LinuxCamp | DevOps analitikasi
LinuxCamp | DevOps (@linuxcamp_tg) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 13 847 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 159-o'rinni va Rossiya mintaqasida 47 525-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 13 847 obunachiga ega bo‘ldi.
22 Iyul, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -162 ga, so‘nggi 24 soatda esa -2 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 27.40% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 13.73% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 3 795 marta ko‘riladi; birinchi sutkada odatda 1 902 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 38 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent linuxcamp, ядро, linux, диск, docker kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Обо мне: C/C++/Linux эксперт. Говорим про разработку, Linux, DevOps, сети и администрирование.
Админ (реклама): @XoDefender
Чат: @linuxcamp_chat
Менеджер: @Spiral_Yuri
Биржа: https://telega.in/c/linuxcamp_tg
РКН: https://clck.ru/3RWA3C”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 23 Iyul, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
umask 077
SECRET_FILE=$(mktemp /tmp/secret.XXXXXX)
umask 077 гарантирует, что файл будет доступен только владельцу.
mktemp создаёт файл атомарно и защищает от подмены в /tmp.
Права выставляются в момент создания.
Вводим секрет без history
Читаем данные напрямую из TTY и записываем в файл:
read -s SECRET
printf "%s\n" "$SECRET" > "$SECRET_FILE"
read -s не показывает ввод.
Переменная живет только в текущем shell.
В history ничего не попадет.
Автоудаление
Настроим удаление через 5 минут:
(sleep 300; shred -u "$SECRET_FILE") &
sleep задает задержку. shred -u перезаписывает и удаляет файл. Процесс уходит в фон, можно продолжать работу.
Даже если выйдешь из shell, удаление все равно произойдет.
Итог
Получаем временный файл с жесткими правами, без утечек в history и без мусора на диске.
LinuxCamp | #utils
tmux new -s backend
Окна и панели
Но самое полезное - это окна и панели.
Окна в tmux как вкладки, а панели разделяют экран внутри одного окна. Теперь у меня в одной сессии может быть окно с логами, второе с деплоем, третье с htop.
Разделить экран можно так:
Ctrl + b, % # вертикальный split
Ctrl + b, " # горизонтальный split
Создавать и переключаться между окнами:
Ctrl + b, c # создание окна
Ctrl + b, n # переключение между окнами
Если нужно уйти и оставить все работать:
Ctrl + b, d
Вернуться:
tmux attach -t backend
Вывод:
В итоге у меня один SSH, по одной сессии на проект, и внутри нее уже готовое рабочее окружение под меня. Также можно разделять по стендам: дев, прод, стейдж. Заходишь и продолжаешь с того же места.
LinuxCamp | #utils
x-logging: &journald
driver: "journald"
options:
tag: "{{.Name}}"
services:
app:
logging: *journald
Теперь смотришь логи не через docker logs, а как нормальные системные:
journalctl -t app -f
journalctl -t app --since "1 hour ago"
journalctl -t app --since "2026-02-09 00:00:00"
Чтобы логи переживали ребут
По умолчанию journald может хранить часть логов в памяти. Включаем хранение на диск:
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
Проверка сколько места заняли логи:
journalctl --disk-usage
Ротация логов journald, чтобы диск не умер
Если ты кидаешь логи в journald, он не хранит их бесконечно. Ротация и лимиты настраиваются в /etc/systemd/journald.conf или правильнее в отдельных файлах:
sudo mkdir -p /etc/systemd/journald.conf.d
sudo nano /etc/systemd/journald.conf.d/10-rotation.conf
Вывод
Хочешь не терять логи, не привязывай их к жизни контейнера. Сложи их в journald и получи единый поиск, ротацию и историю, которая переживает перезапуски.
LinuxCamp | #utils
nano ~/.ssh/config
chmod 600 ~/.ssh/config
Минимальный пример: алиас, юзер, ключ, нормальные keepalive
Host prod
HostName 95.215.56.62
User maga
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 30
ServerAliveCountMax 3
Теперь подключение становится человеческим:
ssh prod
JumpHost: когда есть bastion
Если внутренняя машина доступна только через bastion, добавляешь ProxyJump.
Host bastion
HostName 1.2.3.4
User maga
IdentityFile ~/.ssh/id_ed25519
Host internal
HostName 10.95.0.10
User maga
IdentityFile ~/.ssh/id_ed25519
ProxyJump bastion
И заходишь одной командой, без матрёшки из ssh:
ssh internal
Ускоряем повторные ssh: ControlMaster
Когда ты делаешь 10 коннектов подряд, каждый новый handshake это боль, особенно через bastion. Мультиплексирование решает.
Host *
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h:%p
ControlPersist 10m
После этого повторные ssh internal ощущаются как телепорт.
Вывод
Ключи дают безопасность, а ~/.ssh/config даёт скорость и порядок. ProxyJump убирает матрёшку, ControlMaster убирает тормоза. Один раз настроил и дальше просто работаешь.
LinuxCamp | #utilssystemd-analyze blameОна покажет список юнитов, отсортированный по времени старта. Важно: это не всегда время выполнения, а то, сколько юнит считался стартующим. Но обычно виновники видны сразу. Дерево зависимостей Когда юнит тормозит, часто причина не в нём, а в том, что он ждёт сеть, диск, другой сервис.
systemd-analyze critical-chainЭта штука показывает цепочку, что блокировало путь до default.target. Видно кто кого ждал и где пробка. График загрузки для красивого разбора Если хочется визуально показать коллеге почему оно долго стартует, есть SVG-таймлайн.
systemd-analyze plot > boot.svg
Открываешь boot.svg в браузере и видишь полосочки, кто и когда стартовал.
Вывод
systemd-analyze это твой способ увидеть кто, где и почему тормозит загрузку и кто кого ожидает.
LinuxCamp | #utilsxdg-open file.pdfevince (пакет evince) Нормальный GUI просмотрщик, если у тебя есть окружение.
evince file.pdfpdfinfo и pdftotext (пакет poppler-utils) Посмотреть метаданные и быстро вытащить текст.
pdfinfo file.pdf | head pdftotext file.pdf - | lesspdftoppm (пакет poppler-utils) Если PDF это скан и текста нет, рендерим страницы в PNG.
pdftoppm -png -f 1 -l 3 file.pdf page
mupdf (пакет mupdf)
Лёгкий просмотрщик, часто быстрее тяжёлых.
mupdf file.pdfzathura (пакет zathura) Минималистичный просмотрщик, любимый вариант для клавиатурных ниндзя.
zathura file.pdfВывод Для PDF тебе обычно хватает poppler-utils и одного просмотрщика. Остальное уже по вкусу. А если вдруг в очередной слив опять попадет документация по bash, ты хотя бы будешь готов открыть ее красиво. LinuxCamp | #utils
* * * * * flock -n /tmp/myjob.lock -c '/usr/local/bin/myjob.sh'
-n значит не ждать, если занято, сразу выйти.
Если важно не пропустить, а выполнить по очереди
Ждать пока освободится лок:
flock /tmp/myjob.lock -c '/usr/local/bin/myjob.sh'
Или ждать максимум 30 секунд:
flock -w 30 /tmp/myjob.lock -c '/usr/local/bin/myjob.sh'
Чтобы было видно пропуск
flock -n /tmp/cleanup.lock -c '/usr/local/bin/cleanup.sh' || logger -t cleanup "skip: lock busy"
Вывод:
flock это ремень безопасности для cron. Одной строкой ты убираешь параллельные запуски, гонки и случайную порчу данных.
LinuxCamp | #utilsСкан → найден порт → баннер/версия → подбор пароля/эксплойт → закреплениеСканируют все, всегда, без личных причин. Просто потому что это дёшево и масштабируется. Кто ты воин? Если хочешь быстро почувствовать как оно, посмотри на свой сервер глазами атакующего (с другого хоста):
nmap -sS -sV -Pn -p- <твой ip>Тебя интересует только открыт ли 22 (ssh), а любые неожиданные вещи: 2375 (Docker API), 9200 (Elasticsearch), 5432 (PostgreSQL), 6379 (Redis), 8080/8000 (админки), 9090 (метрики/Prometheus) и т.д. Главная мысль: "Если сервис слушает 0.0.0.0, он уже считается публичным!", даже если там есть пароль. Почему пароль слабая защита Пароль - это последняя линия. Первая линия - это, чтобы до сервиса вообще не дошли. Потому что есть брутфорс и словари, есть утечки паролей, есть баги в сервисах, есть неверные настройки, есть админки без rate-limit. И даже без взлома, открытый порт = лишний шум в логах + лишняя нагрузка. База: закрыть все, кроме нужного Самый спокойный подход: default deny, и дальше открываешь только то, что реально нужно. Пример минимального nftables: разрешаем установленные соединения, loopback, SSH и HTTP/HTTPS, остальное в drop.
nft add table inet filter
nft 'add chain inet filter input { type filter hook input priority 0; policy drop; }'
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input iif lo accept
nft add rule inet filter input tcp dport 22 accept
nft add rule inet filter input tcp dport { 80, 443 } accept
Если хочешь сделать ещё правильнее, ограничь SSH по IP (например, только твой офис/VPN):
nft add rule inet filter input ip saddr <YOUR_IP>/32 tcp dport 22 acceptИ сразу становится заметно: даже если на сервере случайно поднялся Redis на 0.0.0.0, то извне его не видно. Важный вывод Если порт открыт, то им кто-то уже интересуется. Сделай так, чтобы интересоваться было нечем. LinuxCamp | #security
1941 — Родился в пригороде Нью-Йорка, вырос в семье учёного из Bell Labs. 1968 — Получил образование в Гарварде, но не осилил степень PhD из-за бюрократических формальностей. 1969 — начал работать в Bell Labs, где и создал свои главные проекты. 1972 — создал язык программирования C. Язык создавался для эффективности и переносимости. (1969–1973) — разрабатывал ОС Unix, которая изначально писалась на ассемблере, но к 1973 году была почти полностью переписана на C. 1978 — с Брайаном Керниганом выпустил книгу «Язык программирования C». Также свою руку Деннис приложил и к другим проектам: ОС Plan 9 и Inferno, язык Limbo, взлом шифровальной машины M-209, редактор QED, макропроцессор М4.Влияние языка C на индустрию — C позволил легко переносить Unix на разные аппаратные платформы. — C давал низкоуровневый контроль, как ассемблер, но с высокоуровневой структурой, что сделало его идеальным для системного программирования — Синтаксис и идеи C легли в основу C++, Java, C#, Go, Python. Если было полезно, ставим 🔥 ITCamp | AI & Code
