Admin Guides | Сисадмин

Admin Guides | Сисадмин

@admguides

Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.Админ, реклама: @Ak_MihailБиржа: https://telega.in/c/admguidesРКН: https://kurl.ru/nQejS

11 666подписчиков
Ежедневно🇷🇺

Похожие каналы

Все →

Последние посты

Admin Guides | Сисадмин — пост в ТГ канале

💬 Вопрос на собеседовании для сисадминаДавайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.❓Вопрос: Что такое dirty pages в Linux и как работает механизм writeback?✅Ответ: Dirty pages - это страницы памяти, которые были изменены в RAM, но ещё не записаны на диск. Они появляются, когда процесс пишет данные в файл, но ядро откладывает запись для оптимизации производительности.Как это работает:• При записи в файл данные сначала попадают в page cache и помечаются как dirty.• Ядро периодически запускает механизм writeback, который сбрасывает dirty pages на диск.• Это может делать pdflush / flush threads или отдельные kernel workers в зависимости от версии ядра.

17 июн. 2026 г.1 260В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Сервер начал дропать пакеты, но интерфейс чистыйНет ошибок на физическом уровне, линк поднят, счётчики интерфейса чистые. Но пакеты теряются. Значит проблема выше, внутри стека.Сначала смотрим общую картину дропов по всем слоям:netstat -s | grep -E "drop|fail|error|overflow"cat /proc/net/devПереполнение очереди входящих пакетовПакеты приходят быстрее чем ядро успевает их обработать. Очередь переполняется, остальное дропается:cat /proc/net/softnet_statТретья колонка это dropped. Если растёт, ядро не справляется с входящим потоком. Увеличиваем размер очереди:sysctl -w net.core.netdev_max_backlog=5000sysctl -w net.core.rmem_max=16777216conntrackТаблица соединений полная, новые пакеты дропаются на уровне netfilter:cat /proc/sys/net/netfilter/nf_conntrack_countcat /proc/sys/net/netfilter/nf_conntrack_maxdmesg | grep "nf_conntrack: table full"Если count близок к max, увеличиваем или чистим устаревшие записи:sysctl -w net.netfilter.nf_conntrack_max=524288conntrack -FПереполнение socket bufferПриложение не успевает читать из сокета, буфер переполняется:ss -snetstat -su | grep "receive errors"Смотрим конкретные сокеты с переполнением:ss -unp | awk '$2 > 0'Ненулевой Recv-Q на UDP говорит что приложение не успевает читать.iptablesПравило которое дропает трафик молча, без лога:iptables -L -n -v | grep -v "0 0"iptables -t nat -L -n -vСмотрим на счётчики pkts и bytes, ненулевые правила с DROP и REJECT.

16 июн. 2026 г.1 200В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Как правильно работать с резервным копированием в облаке?25 июня приглашаем на бесплатный вебинар от MWS Cloud Platform всех, кто работает с облаками.⚫️Развеем мифы, разберём лучшие современные подходы и инструменты.⚫️Обсудим интеграцию в процессы, консистентность, точечное восстановление и безопасность. Поговорим о плюсах нативных облачных инструментов.⚫️Проведём демо в MWS Cloud Platform и ответим на ваши вопросы.Зарегистрируйтесь, чтобы не пропустить! ⏰ 25 июня в 14:00 (мск)✅ Зарегистрироваться

16 июн. 2026 г.1 200В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Пользователи Windows 11 критикуют Microsoft за ужесточение требований к учётной записи при установке системы. Теперь при первичной настройке всё чаще требуется вход в Microsoft Account, а создание локальной учётной записи официально не предлагается.В обсуждениях на Reddit пользователи просят вернуть прежнюю опцию локальной установки без обходных методов вроде скриптов или Rufus. Microsoft объясняет изменения безопасностью и функциями вроде BitLocker, где ключи восстановления хранятся в облаке.⏺Часть пользователей считает это оправданным, чтобы не терять доступ к данным, другие - навязанной интеграцией с сервисами компании. Несмотря на внутреннюю критику и обсуждения в Microsoft, компания пока не планирует возвращать простой локальный режим установки.

16 июн. 2026 г.1 350В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Что такое namespace в Linux и чем они отличаются от cgroupsДва инструмента изоляции которые часто путают. cgroups отвечают на вопрос сколько: сколько CPU, памяти, IO получает процесс. Namespace отвечают на вопрос что видит: какие процессы, какие сетевые интерфейсы, какую файловую систему.Docker использует оба одновременно: namespace изолируют окружение контейнера, cgroups ограничивают его ресурсы.Какие namespace существуют⏺PID namespace: процессы видят только свои PID. Внутри контейнера init имеет PID 1, снаружи у него совсем другой номер.⏺Network namespace: отдельный сетевой стек. Свои интерфейсы, свои маршруты, свои правила iptables. Именно поэтому контейнер имеет свой eth0 независимо от хоста.⏺Mount namespace: отдельное дерево файловой системы. Монтирования внутри не видны снаружи.⏺UTS namespace: отдельный hostname. Контейнер может иметь своё имя хоста не меняя хостовое.⏺User namespace: маппинг UID/GID. Root внутри контейнера это непривилегированный пользователь снаружи.Смотрим namespace процессаls -la /proc/<PID>/ns/lsns -p <PID>lsns покажет все namespace к которым принадлежит процесс и сколько процессов их разделяют.Создаём изолированное окружение вручнуюЗапускаем shell в новых namespace без Docker:unshare --pid --net --mount --fork bashПроцесс получает изолированный PID, сеть и файловую систему. Проверяем:ps auxip aВидим только свои процессы и пустой сетевой стек.nsenter: заходим в namespace существующего процессаnsenter -t <PID> --net --pid bash

15 июн. 2026 г.1 360В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

На Stepik вышла программа «Фундамент DevOps»Это комплексная программа из 4 практических курсов по ключевым технологиям современного DevOps: Linux, Git, Docker и Kubernetes.Вы последовательно пройдёте путь от работы в Linux и Git до контейнеризации приложений и управления ими в Kubernetes.Что вы изучите:• уверенную работу в Linux и терминале• Git и контроль версий в реальных проектах• Docker и контейнеризацию приложений• Kubernetes и оркестрацию контейнеров• основы сетей, безопасности и хранения данных• автоматизацию задач и диагностику инфраструктуры... и многому другомуВсе знания закрепляются на практике с помощью заданий с автопроверкой.Материал подаётся понятным языком, шаг за шагом, с большим количеством примеров, схем и демонстраций. После прохождения вы получите сертификат, который можно добавить в резюме.Отдельно курсы стоят 16 600 ₽, но в составе программы доступны всего за 7 990 ₽: открыть на Stepik

15 июн. 2026 г.1 440В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Что такое socat и как он решает задачи, которые netcat не умеетnetcat простой: соединяет два потока. socat мощнее: соединяет любые два потока с преобразованием. Файл, сокет, serial-порт, SSL, UDP, Unix socket, всё это можно связать в любой комбинации.Простейший TCP прокси: пробрасываем локальный порт на удалённый хост:socat TCP-LISTEN:8080,fork TCP:remote_host:80fork означает что каждое соединение обрабатывается в отдельном процессе.SSL-обёртка для сервиса который не умеет SSL:socat SSL-LISTEN:443,cert=server.pem,fork TCP:localhost:8080Доступ к Unix socket через TCP, полезно для отладки Docker API или Postgres:socat TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sockЭмуляция serial-порта через TCP, удобно для работы с оборудованием удалённо:socat PTY,link=/dev/ttyVUSB0 TCP:192.168.1.100:2000Передача файла с прогрессом:# на приёмникеsocat TCP-LISTEN:9999 > file.tar.gz# на отправителеsocat TCP:receiver_ip:9999 < file.tar.gz🔥 socat незаменим когда нужно быстро проверить связность на уровне сокетов или сделать временный прокси без установки nginx. Особенно полезен для отладки когда обычные инструменты не дотягиваются до нужного интерфейса.

12 июн. 2026 г.1 930В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

💬 Вопрос на собеседовании для DevOps-инженераДавайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.❓Вопрос: Что такое eBPF tail calls и зачем они нужны?✅Ответ: Tail calls в eBPF — это механизм, позволяющий одной eBPF-программе передать управление другой без возврата (хвостовой вызов). Это похоже на tail recursion в обычных языках, но реализовано на уровне eBPF VM.Зачем это нужно:• чтобы обходить ограничение на размер eBPF-программы (4096 инструкций);• чтобы собирать модульные eBPF-пайплайны из нескольких независимых программ;• чтобы снижать overhead на переключение контекста между программами.

12 июн. 2026 г.1 710В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Как проверить здоровье диска до того как он умерSMART это встроенная диагностика которую диск ведёт сам. Смотреть её нужно превентивно, не когда уже начались проблемы.Устанавливаем и запускаем быструю проверку:apt install smartmontoolssmartctl -a /dev/sdasmartctl -t short /dev/sdaАтрибуты на которые смотрим в первую очередь:smartctl -a /dev/sda | grep -E "Reallocated|Pending|Uncorrectable|Power_On"Reallocated_Sector_Ct: количество переназначенных секторов. Любое ненулевое значение это тревожный сигнал. Current_Pending_Sector: нестабильные секторы которые ждут переназначения. Offline_Uncorrectable: секторы которые не удалось восстановить.Для NVMe:smartctl -a /dev/nvme0nvme smart-log /dev/nvme0Настраиваем автоматическую проверку через smartd:# /etc/smartd.conf/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m admin@example.com-o on: offline тесты автоматически. -s: короткий тест каждую ночь, длинный по субботам. -m: алерт на почту при проблемах.⚡️Даже идеальные SMART-показатели не гарантируют что диск не умрёт завтра. SMART хорошо предсказывает постепенную деградацию, внезапные отказы контроллера не видит. Бэкап важнее мониторинга.

11 июн. 2026 г.1 710В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Сегодня работаем, но вот в выходной…Кстати, в «Исходном коде» публикуем мемы, делимся опытом 9+ летней разработки и помогаем с собесами в ITЗаходи: https://t.me/codesrc_itСегодня работаем, но вот в выходной…Кстати, в «Исходном коде» публикуем мемы, делимся опытом 9+ летней разработки и помогаем с собесами в ITЗаходи: https://t.me/codesrc_it

11 июн. 2026 г.1 560В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Как пробросить порт через SSH tunnelТри режима которые реально используются.Local forwarding: пробрасываем удалённый порт на локальную машину. Например доступ к базе данных на сервере без открытия порта наружу:ssh -L 5432:localhost:5432 user@serverТеперь локальный psql -h localhost подключается к Postgres на сервере.Remote forwarding: пробрасываем локальный порт на удалённый сервер. Полезно когда нужно дать временный доступ к локальному сервису:ssh -R 8080:localhost:3000 user@serverDynamic forwarding: SOCKS5 прокси через сервер, весь трафик идёт через него:ssh -D 1080 user@serverНастраиваешь браузер на SOCKS5 localhost:1080 и весь трафик идёт через сервер.Для постоянных туннелей добавляем в ~/.ssh/config:Host myserver HostName server_ip LocalForward 5432 localhost:5432 ServerAliveInterval 30 ServerAliveCountMax 3ServerAliveInterval держит туннель живым через NAT. Без него туннель тихо умирает через несколько минут бездействия.

10 июн. 2026 г.1 230В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Microsoft представила Coreutils для WindowsMicrosoft выпустила порт Coreutils для Windows - набора классических Unix-утилит вроде cat, cp, find, ls, sort и других. Проект написан на Rust и PowerShell, распространяется под лицензией MIT и позволяет использовать привычные Linux-команды без WSL.Решение основано на проекте uutils и предназначено для упрощения переноса скриптов между Linux, контейнерами, WSL и Windows. При этом часть утилит недоступна из-за особенностей Windows и отсутствия поддержки некоторых POSIX-механизмов.

10 июн. 2026 г.1 220В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Что делать если root заблокирован и нет sudoСитуация неприятная но не катастрофическая если есть физический или консольный доступ к серверу. На VPS это обычно VNC или serial console в панели провайдера.Перезагружаем сервер и в меню GRUB выбираем нужное ядро, нажимаем E для редактирования. Находим строку которая начинается с linux и добавляем в конец:init=/bin/bashЗагружаемся, попадаем в shell от root без пароля. Файловая система смонтирована read-only, перемонтируем:mount -o remount,rw /Меняем пароль или правим sudoers:passwd rootecho "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoersПерезагружаемся:exec /sbin/init

9 июн. 2026 г.1 290В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

💬 Вопрос на собеседовании для сисадминаДавайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.❓Вопрос: Что такое TCP backlog и как он влияет на устойчивость сервера под высокой нагрузкой?✅Ответ: TCP backlog — это очередь полуоткрытых и установленных соединений, в которой ядро Linux временно хранит входящие подключения до того, как приложение примет их через accept().Фактически существует две очереди:• SYN backlog — соединения в состоянии SYN_RECV (получен SYN, отправлен SYN-ACK)• accept backlog — уже установленные соединения, ожидающие обработки приложениемЕсли backlog переполняется:• новые клиенты получают задержки или RST• возможны потери соединений под пиковым трафиком• возрастает эффект от SYN flood даже без атаки

9 июн. 2026 г.1 310В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Как найти утечку памяти в работающем процессе без его остановкиПамять растёт, не освобождается, через несколько дней сервер уходит в своп или OOM Killer убивает процесс. Останавливать нельзя, продакшн. Работаем с живым процессом.⏺Убеждаемся что это утечка а не кешСначала смотрим динамику, а не моментальный снимок:watch -n 5 'ps -o pid,rss,vsz,comm -p <PID>'RSS растёт монотонно и никогда не падает, это утечка. Растёт и периодически падает, скорее всего нормальное поведение или кеш который потом освобождается.⏺Смотрим карту памяти процессаcat /proc/<PID>/smaps | grep -A 10 "heap"pmap -x <PID> | sort -k3 -rn | head -20pmap покажет все регионы памяти отсортированные по размеру. Если heap аномально большой или растёт куча анонимных регионов, утечка скорее всего там.⏺Valgrind на живом процессеЕсли процесс можно перезапустить под valgrind в тестовой среде:valgrind --leak-check=full --track-origins=yes ./myappНа продакшне без перезапуска подключаемся через gdb и дампим heap:gdb -p <PID>(gdb) dump memory /tmp/heap.dump 0x<start> 0x<end>Адреса берём из /proc/<PID>/maps.⏺Для Python-процессовПодключаемся к живому интерпретатору через py-spy:pip install py-spypy-spy dump --pid <PID>Или смотрим объекты в памяти через tracemalloc если есть возможность добавить в код:import tracemalloctracemalloc.start()# ... код ...snapshot = tracemalloc.take_snapshot()top_stats = snapshot.statistics('lineno')for stat in top_stats[:10]: print(stat)

8 июн. 2026 г.1 360В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Ротация SSH-ключей на парке серверов без потери доступаМенять SSH-ключи страшно: один неверный шаг и теряешь доступ к серверу. Главное правило: новый ключ добавляется до того как старый удаляется.Генерируем новый ключssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_new -C "rotated-$(date +%Y-%m)"ed25519 короче RSA и безопаснее. Комментарий с датой помогает потом понять когда ключ создавался.Добавляем новый ключ на все серверыПока старый ключ ещё работает, добавляем новый через ssh-copy-id или вручную:ssh-copy-id -i ~/.ssh/id_ed25519_new.pub user@serverДля парка серверов через цикл:while read host; do ssh-copy-id -i ~/.ssh/id_ed25519_new.pub user@$hostdone < servers.txtПроверяем что новый ключ работает прежде чем трогать старый:ssh -i ~/.ssh/id_ed25519_new user@server "echo ok"Удаляем старый ключТолько после того как убедились что новый работает на всех серверах:OLD_KEY=$(cat ~/.ssh/id_ed25519_old.pub)while read host; do ssh -i ~/.ssh/id_ed25519_new user@$host \ "sed -i '/$OLD_KEY/d' ~/.ssh/authorized_keys"done < servers.txtПроверяем что старый ключ больше не работает:ssh -i ~/.ssh/id_ed25519_old user@serverДолжен получить Permission denied.Если серверов много и есть Ansible- name: Add new SSH key authorized_key: user: "{{ ansible_user }}" key: "{{ lookup('file', '~/.ssh/id_ed25519_new.pub') }}" state: present- name: Remove old SSH key authorized_key: user: "{{ ansible_user }}" key: "{{ lookup('file', '~/.ssh/id_ed25519_old.pub') }}" state: absent

5 июн. 2026 г.1 900В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Случайно удалил файл: можно ли восстановитьПервое правило: ничего не писать на раздел где был файл. Каждая запись увеличивает шанс что данные перезапишутся. Если это продакшн-сервер, останови всё что активно пишет на этот диск.1️⃣Если файл ещё открыт процессомУдалённый файл в Linux не исчезает пока его держит хотя бы один открытый дескриптор. Смотрим кто держит:lsof | grep deletedЕсли процесс нашёлся, копируем файл прямо из /proc:cp /proc/<PID>/fd/<FD> /tmp/recovered_fileЭто самый надёжный способ, данные гарантированно целые.2️⃣Если файл уже никто не держитИспользуем extundelete для ext4 или testdisk для любой ФС. Сначала размонтируем раздел или переводим в read-only:mount -o remount,ro /dev/sdb1Восстановление через extundelete:apt install extundeleteextundelete /dev/sdb1 --restore-file /path/to/deleted/fileВосстановление через testdisk если не знаешь точный путь:apt install testdisktestdisk /dev/sdb1testdisk интерактивный, идёшь по меню: Analyse, Quick Search, находишь файлы, копируешь.3️⃣Если ничего не помоглоСнимаем образ диска перед дальнейшими попытками, чтобы не потерять последний шанс:dd if=/dev/sdb1 of=/mnt/backup/disk.img bs=4M status=progressДальше работаем с образом, а не с живым диском.

4 июн. 2026 г.1 800В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

💬 Вопрос на собеседовании для DevOps-инженераДавайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.❓Вопрос: Что такое epoll и почему он эффективнее select() и poll()?✅Ответ: epoll — это механизм мультиплексирования ввода-вывода в Linux, предназначенный для эффективной работы с большим количеством сетевых соединений. Именно на нём построены современные веб-серверы, прокси и балансировщики нагрузки. Как это работает: • Приложение один раз регистрирует файловые дескрипторы в epoll через epoll_ctl(). • Ядро самостоятельно отслеживает события на этих дескрипторах. • При вызове epoll_wait() возвращаются только те сокеты, на которых действительно произошло событие.

4 июн. 2026 г.1 770В Telegram
Admin Guides | Сисадмин — пост в ТГ канале

Колледж Президентской академии приглашает льготные категории граждан на бесплатную программу повышения квалификации «Специалист по безопасности в информационных системах».Это ваш шанс систематизировать знания и получить практические навыки, востребованные на рынке труда.В результате обучения вы:✔Освоите основы информационной безопасности: познакомитесь с ключевыми понятиями, классификацией угроз и нормативно‑правовой базой в сфере защиты информации, а также изучите международные стандарты и рекомендации.✔Изучите методы и инструменты защиты данных: механизмы контроля доступа и разграничения полномочий, средства идентификации и аутентификации пользователей, способы защиты информации ограниченного доступа (без сведений, составляющих гостайну) — в т. ч. с применением криптографических средств.✔Получите практические знания о криптографических методах защиты информации и их применении для обеспечения безопасности данных.Обучение будет проходить с 7 по 30 сентября.👉Подать заявку можно до 17 августа включительно по ссылке https://trudvsem.ru/educational-programs/card?id=4c2df77b-b487-459a-8d24-72e711e477b2Для помощи в оформлении заявки обращайтесь по телефону +7 905 724 3953Будем рады видеть вас среди участников!

3 июн. 2026 г.1 630В Telegram