🐧 Linux: Смерть динозавров. Почему ты должен забыть про `ifconfig` и `netstat` в 2026-м
Привет, коллеги! Сегодня пятница, 13-е, и самое время провести экзорцизм — изгнать из твоих пальцев привычку вводить команды из учебников 20-летней давности. Если ты до сих пор ставишь пакет `net-tools` на свежую ОС, ты добровольно ставишь себе деревянные протезы вместо современных карбоновых манипуляторов. На ARM-серверах и современных ядрах Linux эти утилиты показывают погоду на Марсе, а не реальное состояние стека.
Техническая суть:
Практика:
Заменяем старые привычки на актуальный CLI. Почувствуй скорость:
Зачем это нужно:
#linux #networking #ss #iproute2 #troubleshooting #admin_future
Привет, коллеги! Сегодня пятница, 13-е, и самое время провести экзорцизм — изгнать из твоих пальцев привычку вводить команды из учебников 20-летней давности. Если ты до сих пор ставишь пакет `net-tools` на свежую ОС, ты добровольно ставишь себе деревянные протезы вместо современных карбоновых манипуляторов. На ARM-серверах и современных ядрах Linux эти утилиты показывают погоду на Марсе, а не реальное состояние стека.
Техническая суть:
Переходим на связку iproute2 (`ip`) и **iproute2-ss** (`ss`).
Под капотом: Старый `netstat` читает информацию из `/proc/net/`, что при большом количестве соединений превращается в пытку для CPU и диска. Современная утилита `ss` (Socket Statistics) использует механизм Netlink, запрашивая данные напрямую у ядра. Это в десятки раз быстрее и точнее, особенно когда у тебя тысячи IPv6-соединений.
Практика:
Заменяем старые привычки на актуальный CLI. Почувствуй скорость:
# 1. Вместо 'ifconfig' — смотрим адреса и статистику ошибок на интерфейсе
ip -c -s link show eth0
ip -6 addr # Только IPv6, только хардкор
# 2. Вместо 'netstat -tulpn' — ищем, кто слушает порты
# -l (listening), -n (numeric), -p (process), -t (tcp), -4/6 (family)
ss -ltnp4
# 3. Киллер-фича: ищем все соединения от конкретного IP, которые тупят
ss -o state established '( dport = :http or sport = :http )'
# 4. Мониторим изменения в сети в реальном времени (кто поднял интерфейс, кто упал)
ip monitor
Зачем это нужно:
Для личного спокойствия. Когда сервер под нагрузкой «приляжет», старый `netstat` может просто зависнуть, пытаясь распарсить `/proc`. `ss` выдаст результат мгновенно, позволив тебе быстро найти и отстрелить проблемный процесс.
#linux #networking #ss #iproute2 #troubleshooting #admin_future
🪟 Windows: CLI-первенство. Управляем сервером без «тяжелых» окон
Коллеги, в 2026 году открывать RDP-сессию, чтобы просто проверить свободное место на диске или перезапустить службу — это признак дурного тона и лишняя нагрузка на канал связи. В условиях жестких требований безопасности каждое RDP-подключение — это лишнее окно в твою «цифровую крепость».
Техническая суть:
Практика:
Забудь про «Пуск -> Выполнить». Открывай терминал:
Зачем это нужно:
#windows #powershell #winrm #automation #sysadmin #admin_future
Коллеги, в 2026 году открывать RDP-сессию, чтобы просто проверить свободное место на диске или перезапустить службу — это признак дурного тона и лишняя нагрузка на канал связи. В условиях жестких требований безопасности каждое RDP-подключение — это лишнее окно в твою «цифровую крепость».
Техническая суть:
Используем PowerShell Remoting (WinRM) через CLI. Это позволяет выполнять команды на сотнях серверов одновременно, не видя перед собой ни одного рабочего стола.
Под капотом: WinRM работает через HTTP/HTTPS (порты 5985/5986). В 2026-м мы настраиваем его на работу по TLS 1.3 с авторизацией по сертификатам. Это безопаснее, быстрее и позволяет автоматизировать рутину через обычные текстовые команды.
Практика:
Забудь про «Пуск -> Выполнить». Открывай терминал:
# 1. Подключаемся к удаленному Server Core узлу (интерактивно)
Enter-PSSession -ComputerName "SRV-DB-01"
# 2. Магия: узнаем свободное место на дисках сразу на всей группе серверов
Invoke-Command -ComputerName "SRV-APP-01", "SRV-APP-02", "SRV-APP-03" -ScriptBlock {
Get-Volume | Select-Object DriveLetter, FileSystemLabel,
@{Name="FreeGB";Expression={[Math]::Round($_.SizeRemaining / 1GB, 2)}}
}
# 3. Перезапускаем службу только если она "висит"
Invoke-Command -ComputerName "SRV-PRINT-01" -ScriptBlock {
Restart-Service -Name "Spooler" -Force
}
Зачем это нужно:
Скорость и масштабируемость. Пока твой коллега ждет прогрузки графики в RDP, ты уже собрал отчет по всем серверам в сегменте и ушел пить кофе.
#windows #powershell #winrm #automation #sysadmin #admin_future
🔥3
🎓 Собеседование сисадмина. Выпуск #10: Крах гипервизоров (Bare-metal ARM & KubeVirt)
Привет, коллеги! Юбилейный выпуск. В 2026 году классические гипервизоры вроде ESXi или Hyper-V окончательно превратились в музейные экспонаты. Лицензионные войны и потребность в дичайшей плотности вычислений привели нас к тому, что мы запускаем виртуальные машины прямо внутри Kubernetes на Bare-metal ARM серверах. Если ты до сих пор считаешь, что виртуалка — это «просто файл .vmdk на СХД», ты застрял в прошлом десятилетии.
Разберем три вопроса, которые проверят твою готовность к жизни в мире без «синих окон» управления гипервизором.
❓ Вопрос 1: «Зачем нам тащить виртуальные машины в Kubernetes через KubeVirt, если можно просто всё контейнеризировать?»
❌ Ответ новичка: «Это чтобы было удобнее смотреть на них в одной панели управления».
✅ Ответ инженера:
❓ Вопрос 2: «В чем главная проблема производительности при запуске VM на ARM-архитектуре и как мы её решаем?»
❌ Ответ новичка: «ARM просто медленнее, чем x86, поэтому виртуалки на нем тормозят».
✅ Ответ инженера:
❓ Вопрос 3: «Что такое Cloud-Init и почему без него создание виртуалки в 2026 году считается ручным трудом?»
❌ Ответ новичка: «Это скрипт, который ставит софт после того, как я зашел на сервер по SSH».
✅ Ответ инженера:
---
Практический пример: Декларативная виртуалка в KubeVirt
Вот так в 2026 году выглядит «создание сервера». Никаких кликов мышкой в vCenter:
Привет, коллеги! Юбилейный выпуск. В 2026 году классические гипервизоры вроде ESXi или Hyper-V окончательно превратились в музейные экспонаты. Лицензионные войны и потребность в дичайшей плотности вычислений привели нас к тому, что мы запускаем виртуальные машины прямо внутри Kubernetes на Bare-metal ARM серверах. Если ты до сих пор считаешь, что виртуалка — это «просто файл .vmdk на СХД», ты застрял в прошлом десятилетии.
Разберем три вопроса, которые проверят твою готовность к жизни в мире без «синих окон» управления гипервизором.
❓ Вопрос 1: «Зачем нам тащить виртуальные машины в Kubernetes через KubeVirt, если можно просто всё контейнеризировать?»
❌ Ответ новичка: «Это чтобы было удобнее смотреть на них в одной панели управления».
✅ Ответ инженера:
Не всё можно (и нужно) запихивать в Docker. У нас полно legacy-софта на старых ядрах, специфических ОС или систем, требующих прямого доступа к ядру.
* KubeVirt позволяет управлять VM как обычными подами. Это дает единый IaC-стек (Terraform/Crossplane): тебе не нужно отдельно описывать сеть для виртуалки и отдельно для контейнера.
* Мы получаем общие механизмы мониторинга, логирования и сетевые политики (Cilium/Calico) для всего парка сразу. В 2026-м инфраструктура должна быть однородной, даже если внутри — зоопарк из систем.
❓ Вопрос 2: «В чем главная проблема производительности при запуске VM на ARM-архитектуре и как мы её решаем?»
❌ Ответ новичка: «ARM просто медленнее, чем x86, поэтому виртуалки на нем тормозят».
✅ Ответ инженера:
Проблема не в скорости ядер (ARM Neoverse в 2026-м рвет конкурентов), а в накладных расходах на эмуляцию устройств и обработку прерываний.
* Чтобы не терять 20-30% мощности, мы используем VirtIO и механизмы Hardware-assisted virtualization (вроде ARM Virtualization Extensions).
* Для сетевого трафика мы пробрасываем устройства через SR-IOV или используем DPDK, чтобы пакеты шли в обход виртуального свитча прямо в гостевую ОС. Это критично для отечественных ARM-кластеров, где мы выжимаем максимум из каждого ватта энергии.
❓ Вопрос 3: «Что такое Cloud-Init и почему без него создание виртуалки в 2026 году считается ручным трудом?»
❌ Ответ новичка: «Это скрипт, который ставит софт после того, как я зашел на сервер по SSH».
✅ Ответ инженера:
Cloud-Init — это стандарт де-факто для автоматической настройки инстанса при первом запуске.
* Виртуалка в KubeVirt — это эфемерная сущность. Мы не заходим на неё «настроить сеть». Cloud-Init получает метаданные, сам создает пользователей, прокидывает SSH-ключи, настраивает статику в IPv6 и монтирует диски.
* Если виртуалка не поднялась через Cloud-Init — мы её прибиваем и пересоздаем. Ручная правка конфигов внутри VM — это путь к «дрейфу конфигурации» и хаосу в мониторинге.
---
Практический пример: Декларативная виртуалка в KubeVirt
Вот так в 2026 году выглядит «создание сервера». Никаких кликов мышкой в vCenter:
# vm-arm64-prod.yaml
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: legacy-app-server
spec:
running: true
template:
spec:
domain:
cpu:
cores: 4 # Оптимизировано под ARM ядра
resources:
requests:
memory: 8Gi
devices:
disks:
- name: containerdisk
disk: {}
- name: cloudinitdisk
disk: {}
volumes:
- name: containerdisk
containerDisk:
image: registry.corp.local/vms/debian-13-arm64:latest
- name: cloudinitdisk
cloudInitNoCloud:
userData: |
#cloud-config
users:
- name: admin_future
ssh_authorized_keys:
- ssh-ed25519 AAAAC3Nza...
runcmd:
- systemctl start specialized-service
Переход на KubeVirt и ARM — это не мода, а экономика. Ты либо управляешь тысячей серверов как одной сущностью, либо тонешь в тикетах на «создание одной маленькой виртуалки». В 2026 году админ — это не «хранитель ключей от серверной», а архитектор автоматизированных фабрик по переработке трафика.
Золотое правило:
#собеседование_AF #kubevirt #arm #baremetal #virtualization #kubernetes #admin_future
👍2
🐧 Linux: Быстрее тени. Почему find уходит на пенсию в 2026-м
Привет, коллеги! Понедельник, 16 марта, начинаем неделю с очистки кармы и ускорения пальцев. Если ты до сих пор ждешь по три минуты, пока find / прочешет твои терабайтные NVMe-массивы на ARM-кластере, то у меня для тебя плохие новости: твое время стоит дороже, чем циклы процессора. В 2026-м, когда плотность данных зашкаливает, админ должен находить иголку в стоге сена за миллисекунды.
Техническая суть:
Практика:
Забудь про бесконечное ожидание. Используй современные инструменты для поиска битых конфигов или утечек в логах:
Зачем это нужно:
#linux #performance #rust #cli #sysadmin #admin_future
Привет, коллеги! Понедельник, 16 марта, начинаем неделю с очистки кармы и ускорения пальцев. Если ты до сих пор ждешь по три минуты, пока find / прочешет твои терабайтные NVMe-массивы на ARM-кластере, то у меня для тебя плохие новости: твое время стоит дороже, чем циклы процессора. В 2026-м, когда плотность данных зашкаливает, админ должен находить иголку в стоге сена за миллисекунды.
Техническая суть:
Мы переходим на связку fd и ripgrep (rg).
Под капотом: В отличие от классического find, который последовательно обходит дерево ФС, fd использует многопоточность и по умолчанию игнорирует скрытые папки и .gitignore. А ripgrep — это grep на стероидах, написанный на Rust, который пролетает сквозь бинарные логи и огромные конфиги, используя SIMD-инструкции процессоров ARM и x86. Это не просто «быстрее», это другой уровень отзывчивости системы.
Практика:
Забудь про бесконечное ожидание. Используй современные инструменты для поиска битых конфигов или утечек в логах:
# 1. Найти все файлы .conf в /etc, измененные за последние 10 минут
# Быстрее, чем ты успеешь моргнуть
fd -e conf -t f --changed-within 10m . /etc
# 2. Найти строку "error" во всех логах, игнорируя бинарный мусор
# -z позволяет искать даже в сжатых .gz архивах (must have 2026)
rg -z "critical_error" /var/log/app/
# 3. Киллер-фича: интерактивный поиск через fzf
# Интегрируем fd в fzf для мгновенного перехода к файлу
alias pf="fd -t f | fzf --preview 'bat --color=always {}' | xargs -r vim"
Зачем это нужно:
Для бизнеса это сокращение времени простоя (MTTR). Пока твой коллега смотрит на мигающий курсор find, ты уже нашел проблемную строчку в конфиге, поправил её и ушел обсуждать план миграции на новый сегмент сети.
#linux #performance #rust #cli #sysadmin #admin_future
👍4
🪟 Windows: Детектив событий. Фильтруем Event Log без GUI
Коллеги, признавайтесь, кто до сих пор ждет по пять минут, пока «Просмотр событий» (Event Viewer) соизволит отрисовать список ошибок? В 2026 году в условиях Server Core и жесткой изоляции сегментов, GUI — это непозволительная роскошь. Если ты не умеешь вытаскивать причину падения сервиса одной строкой в PowerShell, ты беззащитен перед лицом инцидента.
Техническая суть:
Практика:
Перестань страдать в графическом интерфейсе. Стань мастером запросов:
Зачем это нужно:
#windows #powershell #eventlog #security #troubleshooting #admin_future
Коллеги, признавайтесь, кто до сих пор ждет по пять минут, пока «Просмотр событий» (Event Viewer) соизволит отрисовать список ошибок? В 2026 году в условиях Server Core и жесткой изоляции сегментов, GUI — это непозволительная роскошь. Если ты не умеешь вытаскивать причину падения сервиса одной строкой в PowerShell, ты беззащитен перед лицом инцидента.
Техническая суть:
Используем Get-WinEvent с XML-фильтрацией.
Под капотом: Старый Get-EventLog медленный, потому что он выкачивает все события и только потом их фильтрует. Get-WinEvent умеет отправлять запрос (FilterXML или FilterHashtable) прямо в движок журнала. В 2026-м это единственный способ быстро найти событие среди миллионов записей аудита в «цифровой крепости».
Практика:
Перестань страдать в графическом интерфейсе. Стань мастером запросов:
# 1. Найти 5 последних ошибок в системном журнале (мгновенно)
Get-WinEvent -FilterHashtable @{LogName='System'; Level=2} -MaxEvents 5
# 2. Кто заблокировал учетку? Ищем событие 4740 в журнале Security
# Работает в разы быстрее через FilterHashtable
$filter = @{
LogName = 'Security'
Id = 4740
}
Get-WinEvent -FilterHashtable $filter | Select-Object TimeCreated, Message
# 3. Выгрузка ошибок конкретного приложения за последние 2 часа
$startTime = (Get-Date).AddHours(-2)
Get-WinEvent -FilterXPath "*[System[(Level=2 or Level=3) and TimeCreated[@SystemTime >= '$($startTime.ToUniversalTime().ToString('s'))Z')]]" -LogName "Application"
Зачем это нужно:
Оперативность. В 2026 году требования к безопасности (ИБ) обязывают админа реагировать на подозрительные события в течение минут. Прямые запросы к логам позволяют автоматизировать алертинг и не тратить время на ожидание прогрузки тяжелых консолей управления.
#windows #powershell #eventlog #security #troubleshooting #admin_future
🔥2
🚀 Skills: GitOps Lite. Почему твой /etc должен быть репозиторием
Помнишь то чувство ужаса, когда ты поправил конфиг, сервис упал, а ты забыл, что именно изменил? В 2026 году фраза «я сейчас всё верну как было по памяти» звучит как признание в профнепригодности. Админ сегодня — это не тот, кто много помнит, а тот, кто всё записывает в Git.
Техническая суть:
Практика:
Начни внедрять GitOps на минималках прямо сейчас. Это спасет твою нервную систему:
Зачем это нужно:
#skills #git #iac #devops #bestpractices #admin_future
Помнишь то чувство ужаса, когда ты поправил конфиг, сервис упал, а ты забыл, что именно изменил? В 2026 году фраза «я сейчас всё верну как было по памяти» звучит как признание в профнепригодности. Админ сегодня — это не тот, кто много помнит, а тот, кто всё записывает в Git.
Техническая суть:
Концепция Infrastructure as Code (IaC) начинается не с Terraform, а с обычного git init в папке с твоими скриптами или конфигами.
Под капотом: Использование Git дает тебе машину времени. Ты всегда видишь, кто, когда и зачем изменил параметр в nginx.conf или в настройках active_directory. В 2026-м это стандарт: любой аудит безопасности начинается с просмотра истории коммитов в инфраструктурном репозитории.
Практика:
Начни внедрять GitOps на минималках прямо сейчас. Это спасет твою нервную систему:
# 1. Инициализируем репозиторий для критических конфигов
cd /etc/myapp/
git init
# 2. Создаем понятный коммит (забудь про "fix", пиши суть!)
git add .
git commit -m "CHG: Изменен таймаут коннекта к БД для ARM-кластера (Ticket #404)"
# 3. Если всё сломалось — откат за одну секунду
git checkout HEAD^1 config.yaml
systemctl restart myapp
# 4. Просмотр "кто виноват" (blame)
git blame config.yaml
Зачем это нужно:
Личное спокойствие и коллективная ответственность. Когда в команде больше одного человека, Git становится единственным источником правды. Больше никаких config.bak, config.old.2, config_LAST_FINAL. Только чистая история изменений и возможность мгновенного отката.
#skills #git #iac #devops #bestpractices #admin_future
👍2
🐧 Linux: duf — Дисковая статистика здорового человека
Обычный `df -h` в 2026 году на сервере с кучей Docker-контейнеров и смонтированных ARM-разделов превращается в нечитаемую простыню. Пока ты ищешь нужный раздел в этом мусоре, место на диске успевает закончиться окончательно.
Почему это удобно:
✅ Авто-группировка: Отделяет реальные диски от виртуальных (tmpfs, девайсы контейнеров).
✅ Цветовая индикация: Если раздел забит на 90%, ты увидишь это красным цветом сразу, без вчитывания в цифры.
✅ JSON-вывод: Идеально для скриптов, если нужно быстро выкинуть статус дисков в мониторинг.
Установка и запуск:
Если нужно посмотреть только «настоящие» железные диски, чтобы не отвлекаться на мусор:
#linux #tools #duf #storage #cleanup
Обычный `df -h` в 2026 году на сервере с кучей Docker-контейнеров и смонтированных ARM-разделов превращается в нечитаемую простыню. Пока ты ищешь нужный раздел в этом мусоре, место на диске успевает закончиться окончательно.
Ставь duf (Disk Usage/Free Utility). Она группирует разделы, понимает терминальные темы и рисует понятные прогресс-бары.
Почему это удобно:
✅ Авто-группировка: Отделяет реальные диски от виртуальных (tmpfs, девайсы контейнеров).
✅ Цветовая индикация: Если раздел забит на 90%, ты увидишь это красным цветом сразу, без вчитывания в цифры.
✅ JSON-вывод: Идеально для скриптов, если нужно быстро выкинуть статус дисков в мониторинг.
Установка и запуск:
sudo apt install duf
duf
Если нужно посмотреть только «настоящие» железные диски, чтобы не отвлекаться на мусор:
duf --only local.#linux #tools #duf #storage #cleanup
🪟 Windows: tnc — Твой универсальный сетевой швейцарский нож
В 2026-м пытаться проверить доступность порта через `telnet` — это как пытаться зажечь огонь трением палочек. В PowerShell давно есть нативный инструмент `Test-NetConnection` (сокращенно — `tnc`), который делает всё и сразу.
Зачем это нужно:
Примеры использования:
Pro Tip: Результат
#windows #powershell #networking #troubleshooting #tnc
В 2026-м пытаться проверить доступность порта через `telnet` — это как пытаться зажечь огонь трением палочек. В PowerShell давно есть нативный инструмент `Test-NetConnection` (сокращенно — `tnc`), который делает всё и сразу.
Зачем это нужно:
1. Проверка порта: Не надо гадать, закрыл ли порт фаервол в «цифровой крепости».
2. Трассировка: Сразу показывает маршрут до цели.
3. Диагностика: Выдает детальную инфу, почему пакет не дошел.
Примеры использования:
# Просто проверить, открыт ли порт веб-сервера
tnc 192.168.1.50 -Port 443
# Сделать проверку и сразу увидеть маршрут (TraceRoute)
tnc google.com -TraceRoute
# Проверить только ICMP (старый добрый пинг, но с нормальным объектом на выходе)
tnc 8.8.8.8 -InformationLevel Detailed
Pro Tip: Результат
tnc — это объект. Его можно легко засунуть в условие if внутри твоего скрипта авто-деплоя.#windows #powershell #networking #troubleshooting #tnc
❤2
🚀 Skills: Постмортем — Как перестать наступать на те же грабли
Сервер упал, ты его поднял за 5 минут — молодец. Но если ты не написал «постмортем» (разбор полетов), через месяц ты снова будешь поднимать его в 3 часа ночи по той же самой причине. В 2026-м цена ошибки в инфраструктуре на ARM-кластерах слишком высока.
Золотые правила хорошего постмортема:
Шаблон простого отчета в Markdown:
Админ, который пишет такие отчеты, автоматически переходит в категорию инженеров, которым доверяют ключи от самого дорогого продакшена.
#skills #management #postmortem #reliability #career
Сервер упал, ты его поднял за 5 минут — молодец. Но если ты не написал «постмортем» (разбор полетов), через месяц ты снова будешь поднимать его в 3 часа ночи по той же самой причине. В 2026-м цена ошибки в инфраструктуре на ARM-кластерах слишком высока.
Золотые правила хорошего постмортема:
1. Никаких имен: Цель — найти слабое место в системе, а не «наказать Ваню».
2. Хронология: Запиши по минутам: что случилось, когда заметили, когда исправили.
3. Root Cause: Найди корень проблемы. «Забился диск» — это не корень. «Логротейт не отработал из-за ошибки в конфиге» — вот это оно.
Шаблон простого отчета в Markdown:
Инцидент #42: Падение API
Дата: 17.03.2026
Что случилось: Ошибка 502 на фронтенде в течение 15 минут.
Причина: Утечка памяти в новом контейнере, OOM Killer прибил процесс.
Как исправили: Увеличили лимиты RAM, откатили версию образа.
Что сделать, чтобы не повторилось: Настроить алерт на потребление 80% RAM контейнером.
Админ, который пишет такие отчеты, автоматически переходит в категорию инженеров, которым доверяют ключи от самого дорогого продакшена.
#skills #management #postmortem #reliability #career
👍4
🐧 Linux: lnav — Когда логов больше, чем времени на жизнь
Привет, коллеги! Среда, 18 марта. В 2026-м наши ARM-ноды генерируют столько логов, что обычный tail -f превращается в бессмысленный поток символов, от которого рябит в глазах.
Если ты до сих пор пытаешься выцепить ошибку в консоли, просто надеясь на свою реакцию — остановись. Твои глаза заслуживают лучшего.
Используй lnav (The Log File Navigator). Это продвинутый вьювер, который понимает структуру логов «из коробки».
Почему это мастхэв:
Установка и запуск:
Pro Tip: нажми i — увидишь гистограмму. Резкий красный пик = момент, когда всё сломалось.
#linux #tools #lnav #logs #monitoring #admin_future
Привет, коллеги! Среда, 18 марта. В 2026-м наши ARM-ноды генерируют столько логов, что обычный tail -f превращается в бессмысленный поток символов, от которого рябит в глазах.
Если ты до сих пор пытаешься выцепить ошибку в консоли, просто надеясь на свою реакцию — остановись. Твои глаза заслуживают лучшего.
Используй lnav (The Log File Navigator). Это продвинутый вьювер, который понимает структуру логов «из коробки».
Почему это мастхэв:
• Слияние логов: access.log, error.log и системные логи в одной временной ленте
• Подсветка: ошибки — красным, предупреждения — желтым
• Фильтрация: нажал /, ввел паттерн — убрал шум
Установка и запуск:
sudo apt install lnav
# Открываем папку с логами
lnav /var/log/nginx/
Pro Tip: нажми i — увидишь гистограмму. Резкий красный пик = момент, когда всё сломалось.
#linux #tools #lnav #logs #monitoring #admin_future
🪟 Windows: Охота на зависшие службы через PowerShell
Классика: служба зависла в состоянии Stopping. Перезапуск не работает, сервер тупит, ждать нельзя.
Решаем жестко через PowerShell:
Зачем это:
Экономит время на ребутах. Быстро возвращает систему в строй, если служба зависла на ресурсах или сети.
#windows #powershell #troubleshooting #services #admin_future
Классика: служба зависла в состоянии Stopping. Перезапуск не работает, сервер тупит, ждать нельзя.
Решаем жестко через PowerShell:
$ServiceName = "YourServiceName"
$Service = Get-Service $ServiceName
if ($Service.Status -eq "Stopping" -or $Service.Status -eq "Pending") {
$ServicePID = (Get-CimInstance Win32_Service -Filter "Name='$ServiceName'").ProcessId
Stop-Process -Id $ServicePID -Force
Write-Host "Служба $ServiceName прибита. Можно запускать заново." -ForegroundColor Cyan
} else {
Restart-Service $ServiceName -Force
}
Зачем это:
Экономит время на ребутах. Быстро возвращает систему в строй, если служба зависла на ресурсах или сети.
#windows #powershell #troubleshooting #services #admin_future
🚀 Skills: Информационная гигиена или как не слить прод нейросетям
В 2026 админ без ИИ — как лесоруб без бензопилы. Но если ты вставляешь реальные IP, пароли и имена серверов в чат — ты сам отдаешь доступ.
Как делать правильно:
Пример запроса:
Вывод:
ИИ — для идей и синтаксиса. Архитектура и доступы — только у тебя.
#skills #ai #security #opsec #bestpractices #admin_future
В 2026 админ без ИИ — как лесоруб без бензопилы. Но если ты вставляешь реальные IP, пароли и имена серверов в чат — ты сам отдаешь доступ.
Как делать правильно:
• Анонимизация: 192.168.1.100 → 10.0.0.x
• Удаление секретов: никаких токенов и ключей
• Обобщение: без реальных имен серверов
Пример запроса:
У меня есть конфиг Nginx (анонимизирован). Почему при proxy_pass через IPv6 появляются 502? MTU 1420.
Вывод:
ИИ — для идей и синтаксиса. Архитектура и доступы — только у тебя.
#skills #ai #security #opsec #bestpractices #admin_future
🎓Собеседование сисадмина. Выпуск #11: Распределенные хранилища (SDS, Ceph, Longhorn)
Привет, коллеги! Продолжаем наш марафон по технологиям 2026 года. В прошлом выпуске мы похоронили классические гипервизоры, но остался вопрос: где хранить данные этих тысяч виртуалок и контейнеров, если мы отказались от проприетарных СХД за десятки миллионов рублей?
Разберем три вопроса, которые покажут, понимаешь ли ты, как не потерять данные, когда в стойке одновременно «вылетят» два сервера.
❓ Вопрос 1: «В чем принципиальная разница между классическим SAN/NAS и Software-Defined Storage (SDS)?»
❌ Ответ новичка: «SDS — это когда много дисков в сети. Это дешевле, чем покупать готовый сервер от вендора».
✅ Ответ инженера:
❓ Вопрос 2: «Что такое Replication Factor и Erasure Coding? Когда что выбирать?»
❌ Ответ новичка: «Репликация — это копии, а Erasure Coding — это как RAID, только сложнее».
✅ Ответ инженера:
❓ Вопрос 3: «Как вы будете бороться с проблемой Split-brain в распределенном хранилище?»
❌ Ответ новичка: «Надо настроить мониторинг и быстро чинить сеть».
✅ Ответ инженера:
---
Практический пример: Проверка здоровья Ceph-кластера
В 2026-м ты не кликаешь в веб-морде, ты смотришь статус через CLI, чтобы понимать реальную нагрузку на OSD (диски):
Вывод: Админ, который умеет настраивать Ceph или Longhorn на ARM-серверах, в 2026 году — это элита. Ты больше не зависишь от сервисных контрактов, ты сам строишь фундамент, на котором стоит весь бизнес.
Золотое правило:Данные стоят дороже железа. Всегда проверяй Recovery Traffic Limit, чтобы восстановление одного диска не «положило» всю сеть компании.
#собеседование_AF #sds #ceph #longhorn #storage #nvme #admin_future
Привет, коллеги! Продолжаем наш марафон по технологиям 2026 года. В прошлом выпуске мы похоронили классические гипервизоры, но остался вопрос: где хранить данные этих тысяч виртуалок и контейнеров, если мы отказались от проприетарных СХД за десятки миллионов рублей?
В мире отечественных ARM-кластеров и жесткого импортозамещения мы перешли на SDS (Software-Defined Storage). Теперь хранилище — это не дорогая коробка с логотипом вендора, а софт, который объединяет диски обычных серверов в единое пространство.
Разберем три вопроса, которые покажут, понимаешь ли ты, как не потерять данные, когда в стойке одновременно «вылетят» два сервера.
❓ Вопрос 1: «В чем принципиальная разница между классическим SAN/NAS и Software-Defined Storage (SDS)?»
❌ Ответ новичка: «SDS — это когда много дисков в сети. Это дешевле, чем покупать готовый сервер от вендора».
✅ Ответ инженера:
Главное — абстракция. В SDS интеллект (контроллер, кэширование, дедупликация) перенесен из специализированного железа в софт, работающий на обычных узлах.
1. Масштабируемость: В SAN мы ограничены портами контроллера. В SDS (Ceph, Longhorn) мы просто добавляем новый ARM-узел в кластер, и емкость растет линейно.
2. Отказоустойчивость: В SDS данные размазаны по узлам. Выход из строя целого сервера для нас — штатная ситуация, а не катастрофа.
3. Vendor Lock-in: В 2026-м это критично. Мы не зависим от поставок конкретных запчастей, мы используем любые доступные NVMe накопители.
❓ Вопрос 2: «Что такое Replication Factor и Erasure Coding? Когда что выбирать?»
❌ Ответ новичка: «Репликация — это копии, а Erasure Coding — это как RAID, только сложнее».
✅ Ответ инженера:
Это два способа обеспечить выживание данных.
1. Replication (обычно x3): Мы храним три полные копии каждого блока на разных узлах.
Плюс: Максимальная производительность (чтение очень быстрое) и простота восстановления.
Минус: Огромные траты места (платим за 3 ТБ, получаем 1 ТБ полезного объема). Выбираем для БД и горячих виртуалках.
2. Erasure Coding (EC): Данные разбиваются на фрагменты + контрольные суммы (как в RAID 5/6), которые раскидываются по узлам.
Плюс: Экономия места (коэффициент может быть 1.5 вместо 3).
Минус: Высокая нагрузка на CPU и сеть при записи и восстановлении. Выбираем в 2026-м для холодных данных, архивов и бэкапов.
❓ Вопрос 3: «Как вы будете бороться с проблемой Split-brain в распределенном хранилище?»
❌ Ответ новичка: «Надо настроить мониторинг и быстро чинить сеть».
✅ Ответ инженера:
Мониторинг не лечит, он констатирует смерть. Проблема Split-brain (когда две части кластера думают, что они главные) решается на уровне кворума.
1. Нечетное количество узлов: Минимум 3 (лучше 5) мониторов/контроллеров.
2. Алгоритмы консенсуса: Использование Paxos или Raft. Система не позволит записать данные, если большинство узлов не подтвердило операцию.
3. Fencing: Принудительная изоляция (отключение питания или портов) узла, который ведет себя неадекватно, чтобы он не портил данные в общем сторадже.
---
Практический пример: Проверка здоровья Ceph-кластера
В 2026-м ты не кликаешь в веб-морде, ты смотришь статус через CLI, чтобы понимать реальную нагрузку на OSD (диски):
# Проверить общий статус здоровья
ceph health detail
# Посмотреть распределение данных и нагрузку на диски
ceph osd df tree
# Если видишь статус DEGRADED — проверяем, не идет ли сейчас Recovery (восстановление)
ceph -s
Вывод: Админ, который умеет настраивать Ceph или Longhorn на ARM-серверах, в 2026 году — это элита. Ты больше не зависишь от сервисных контрактов, ты сам строишь фундамент, на котором стоит весь бизнес.
Золотое правило:
#собеседование_AF #sds #ceph #longhorn #storage #nvme #admin_future
👍5
🐧 Linux: Синхронное плавание данных через rsync
Привет, коллеги! Четверг, 19 марта 2026 года. В мире, где объемы данных растут быстрее, чем зарплаты, копировать файлы по одному — это преступление против здравого смысла. Если ты до сих пор используешь scp для тяжелых директорий или, упаси бог, перекидываешь их через общие папки, ты просто любишь смотреть на ползущую полосу загрузки.
Используй rsync. Это классика, которая в 2026-м остается самым надежным инструментом админа.
Почему это мастхэв:
Практика:
Зачем это нужно:
#linux #rsync #backup #migration #sysadmin #admin_future
Привет, коллеги! Четверг, 19 марта 2026 года. В мире, где объемы данных растут быстрее, чем зарплаты, копировать файлы по одному — это преступление против здравого смысла. Если ты до сих пор используешь scp для тяжелых директорий или, упаси бог, перекидываешь их через общие папки, ты просто любишь смотреть на ползущую полосу загрузки.
Используй rsync. Это классика, которая в 2026-м остается самым надежным инструментом админа.
Почему это мастхэв:
1. Дельта-копирование: rsync передает только измененные части файлов. Если ты обновил один лог в архиве на 10 ГБ, он не будет перекачивать весь файл.
2. Сохранение прав: Все атрибуты, владельцы и симлинки переезжают на новый сервер в первозданном виде.
3. Докачка: Если связь оборвалась на 99%, rsync продолжит с того же места, а не начнет с нуля.
Практика:
# Синхронизация папки с удаленным сервером
# -a (archive), -v (verbose), -z (сжатие), -P (прогресс и докачка)
rsync -avzP /var/www/site/ admin@remote-server:/var/www/site/
# Удаление файлов на приемнике, если они исчезли на источнике (зеркалирование)
rsync -avzP --delete /backup/local/ backup-server:/storage/remote/
Зачем это нужно:
Для создания быстрых бэкапов и миграции проектов без простоев. Один раз настроил в cron — и спишь спокойно, пока данные текут туда, куда нужно.
#linux #rsync #backup #migration #sysadmin #admin_future
👍4
🔋 Windows: Как не «потухнуть» вместе с ИБП
Коллеги, стабильность питания — штука капризная. Даже в самом крутом ДЦ может случиться скачок, который проверит твой ИБП (UPS) на прочность. Если твой сервер не знает, в каком состоянии его батареи, он просто «умрет» в самый неподходящий момент, оставив тебя наедине с битой файловой системой и гневными письмами от юзеров.
Скрипт для проверки статуса (копируй и запускай):
Зачем это нужно:
#windows #powershell #ups #monitoring #hardware #admin_future
Коллеги, стабильность питания — штука капризная. Даже в самом крутом ДЦ может случиться скачок, который проверит твой ИБП (UPS) на прочность. Если твой сервер не знает, в каком состоянии его батареи, он просто «умрет» в самый неподходящий момент, оставив тебя наедине с битой файловой системой и гневными письмами от юзеров.
Используй PowerShell для контроля состояния питания. В большинстве случаев достаточно нативного WMI/CIM доступа.
Скрипт для проверки статуса (копируй и запускай):
# Получаем данные о батарее через CIM
$Battery = Get-CimInstance -ClassName Win32_Battery
if ($Battery) {
$Status = switch ($Battery.BatteryStatus) {
1 {"Разряжается"}
2 {"Питание от сети (ОК)"}
3 {"Полностью заряжена"}
default {"Ошибка или Неизвестно"}
}
Write-Output "Статус ИБП: $Status"
Write-Output "Заряд: $($Battery.EstimatedChargeRemaining)%"
} else {
Write-Warning "ИБП не обнаружен в системе. Проверь USB/COM кабель."
}
Зачем это нужно:
Для настройки скриптов автоматического завершения работы. Если заряд падает ниже 10%, сервер должен сам потушить тяжелые базы данных и корректно выключиться, а не просто дождаться обрыва питания.
#windows #powershell #ups #monitoring #hardware #admin_future
📋 Skills: Твой парашют в мире хаоса — Чек-листы
В 2026 году сложность систем такова, что даже самый опытный админ может забыть закрыть один порт в фаерволе или сменить дефолтный пароль на новой службе. Ошибка стоит дорого. Твой главный инструмент здесь — не феноменальная память, а простой текстовый чек-лист.
Почему это работает:
Пример чек-листа при вводе нового Linux-сервера:
Админ, работающий по списку — это признак профессионализма, а не отсутствия опыта. Это гарантия того, что в три часа ночи тебе не придется вспоминать, какой именно конфиг ты забыл поправить.
#skills #productivity #checklist #management #bestpractices #admin_future
В 2026 году сложность систем такова, что даже самый опытный админ может забыть закрыть один порт в фаерволе или сменить дефолтный пароль на новой службе. Ошибка стоит дорого. Твой главный инструмент здесь — не феноменальная память, а простой текстовый чек-лист.
Почему это работает:
1. Разгрузка головы: Тебе не нужно держать в уме 20 шагов развертывания сервера. Ты просто идешь по пунктам.
2. Идентичность: Все твои серверы настроены одинаково, потому что ты всегда идешь по одному и тому же гайду.
3. Делегирование: С хорошим чек-листом даже младший админ не уронит продакшен при выполнении стандартных задач.
Пример чек-листа при вводе нового Linux-сервера:
1. Обновить пакеты системы.
2. Настроить правильный часовой пояс.
3. Создать пользователя с sudo и отключить вход для root.
4. Отключить авторизацию по паролю в SSH (только ключи).
5. Настроить фаервол (запретить всё, кроме нужных портов).
6. Установить и проверить агент мониторинга.
Админ, работающий по списку — это признак профессионализма, а не отсутствия опыта. Это гарантия того, что в три часа ночи тебе не придется вспоминать, какой именно конфиг ты забыл поправить.
#skills #productivity #checklist #management #bestpractices #admin_future
👍3
🐧 Linux: Кто держит мой файл и не дает его удалить?
Привет, коллеги! Пятница, 20 марта. Ситуация классическая: ты пытаешься размонтировать диск или удалить огромный старый лог, а система выдает Device or resource busy. В 2026 году, когда на одном сервере крутится сотня контейнеров и сервисов, искать виновника вручную — это как искать иголку в стоге сена.
Практика:
Зачем это нужно:
#linux #lsof #troubleshooting #admin_future
Привет, коллеги! Пятница, 20 марта. Ситуация классическая: ты пытаешься размонтировать диск или удалить огромный старый лог, а система выдает Device or resource busy. В 2026 году, когда на одном сервере крутится сотня контейнеров и сервисов, искать виновника вручную — это как искать иголку в стоге сена.
Используй lsof (LiSt Open Files). Это твой рентген для файловой системы. Он покажет всё: какой процесс открыл файл, какой у него PID и что он с ним делает.
Практика:
# Найти процесс, который занял конкретный файл
lsof /var/log/nginx/access.log
# Посмотреть всё, что открыто в конкретной папке (удобно при размонтировании)
lsof +D /mnt/data/
# Узнать, какие сетевые файлы открыты конкретным пользователем
lsof -u admin -i
Зачем это нужно:
Для скорости. Вместо того чтобы гадать и перезапускать сервисы наугад, ты за одну секунду находишь PID процесса и решаешь, что с ним делать — подождать или культурно убить через kill. В пятницу вечером каждая сэкономленная минута приближает тебя к отдыху.
#linux #lsof #troubleshooting #admin_future
🔥2
🪟 Windows: Быстрый аудит входов через PowerShell
Коллеги, в марте 2026-го безопасность — это не просто слово, а ежедневная рутина. Если тебе нужно быстро узнать, кто заходил на сервер за последние сутки, не нужно ждать вечность, пока прогрузится тяжелый графический Event Viewer. Мы сделаем это прямо в консоли.
Скрипт для проверки (копируй и запускай):
Зачем это нужно:
#windows #powershell #security #audit #admin_future
Коллеги, в марте 2026-го безопасность — это не просто слово, а ежедневная рутина. Если тебе нужно быстро узнать, кто заходил на сервер за последние сутки, не нужно ждать вечность, пока прогрузится тяжелый графический Event Viewer. Мы сделаем это прямо в консоли.
Используем Get-WinEvent с фильтром по ID 4624 (успешный вход).
Скрипт для проверки (копируй и запускай):
# Список успешных входов за последние 24 часа
$Time = (Get-Date).AddDays(-1)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=$Time} |
Select-Object TimeCreated, @{Name='User'; Expression={$_.Properties[5].Value}} |
Format-Table -AutoSize
Зачем это нужно:
Для контроля. Ты сразу увидишь, если в систему заходил кто-то лишний или под учеткой, которая должна быть неактивна. В пятницу перед уходом домой — это отличная привычка для проверки безопасности своей цифровой крепости.
#windows #powershell #security #audit #admin_future
🚀 Skills: Золотое правило Read-Only Friday
Сегодня 20 марта, пятница. В 2026 году это правило актуально как никогда. Если у тебя возникла «гениальная» идея накатить критическое обновление или сменить правила на фаерволе прямо сейчас — гони её прочь.
Почему мы не трогаем продакшен в пятницу:
1. Закон подлости: Самые странные ошибки вылезают через 2 часа после деплоя, как раз когда ты уже дома.
2. Дефицит ресурсов: В выходные найти коллегу или поддержку провайдера в разы сложнее.
3. Психология: В конце недели внимание притупляется, и цена «опечатки» в конфиге возрастает.
Что делать в пятницу:
Вывод: Хороший админ — это не тот, кто героически чинит сервер в субботу утром, а тот, кто спокойно отдыхает, потому что ничего не трогал в пятницу.
#skills #adminlife #friday #management #bestpractices #admin_future
Сегодня 20 марта, пятница. В 2026 году это правило актуально как никогда. Если у тебя возникла «гениальная» идея накатить критическое обновление или сменить правила на фаерволе прямо сейчас — гони её прочь.
Почему мы не трогаем продакшен в пятницу:
1. Закон подлости: Самые странные ошибки вылезают через 2 часа после деплоя, как раз когда ты уже дома.
2. Дефицит ресурсов: В выходные найти коллегу или поддержку провайдера в разы сложнее.
3. Психология: В конце недели внимание притупляется, и цена «опечатки» в конфиге возрастает.
Что делать в пятницу:
Занимайся документацией, пиши инструкции в Markdown, чисти старые логи или наводи порядок в тикетах. Пятница — день тишины и подготовки.
Вывод: Хороший админ — это не тот, кто героически чинит сервер в субботу утром, а тот, кто спокойно отдыхает, потому что ничего не трогал в пятницу.
#skills #adminlife #friday #management #bestpractices #admin_future
🛡️ Защита RDP: Как не дать подобрать ключи от сервера
Привет, коллеги! Оставлять 3389 порт открытым в дикий интернет — это как оставить ключи от квартиры под ковриком, на котором написано здесь лежат деньги. Ботнеты найдут вас через 30 секунд после поднятия интерфейса. Разберем, как превратить обычный RDP в неприступный шлюз, используя блокировки и GeoIP.
Уровень 1: Политика блокировки учетных записей
Команда для настройки:
Теперь, если бот попробует подобрать пароль, учетка заблокируется на полчаса. Это резко снижает эффективность любого перебора.
Уровень 2: GeoIP — Фильтруем по прописке
Скрипт для блокировки чужих подсетей (пример логики):
Уровень 3: Автоматический бан через Event Log
Логика проста:
1. Скрипт мониторит журнал событий на наличие Event ID 4625 (ошибка входа).
2. Если с одного IP пришло несколько ошибок за минуту — этот IP улетает в блок в фаерволе.
Зачем это нужно:
Золотое правило:Лучший RDP — это тот, который доступен только через VPN. Если всё же нужен прямой доступ — используй все три уровня защиты.
#security #rdp #powershell #geoip #bruteforce #admin_future
Привет, коллеги! Оставлять 3389 порт открытым в дикий интернет — это как оставить ключи от квартиры под ковриком, на котором написано здесь лежат деньги. Ботнеты найдут вас через 30 секунд после поднятия интерфейса. Разберем, как превратить обычный RDP в неприступный шлюз, используя блокировки и GeoIP.
Уровень 1: Политика блокировки учетных записей
Если у вас нет блокировки после N неудачных попыток, хакер может брутфорсить ваш пароль годами. Нам нужно, чтобы после 5 попыток дверь закрывалась перед носом атакующего. В Windows это настраивается через групповые политики, но мы сделаем это быстрее через командную строку.
Команда для настройки:
# Устанавливаем порог блокировки в 5 попыток
net accounts /lockoutthreshold:5
# Время блокировки (в минутах)
net accounts /lockoutduration:30
# Окно сброса счетчика попыток
net accounts /lockoutwindow:30
Теперь, если бот попробует подобрать пароль, учетка заблокируется на полчаса. Это резко снижает эффективность любого перебора.
Уровень 2: GeoIP — Фильтруем по прописке
Зачем вашему серверу принимать подключения из других стран, если ваши сотрудники сидят в одном регионе? Использование GeoIP списков для фаервола — это база. Мы можем использовать PowerShell, чтобы разрешить доступ только для определенных диапазонов адресов.
Скрипт для блокировки чужих подсетей (пример логики):
# Импортируем список разрешенных IP-адресов
$AllowedIPs = Get-Content C:\Scripts\allowed_ips.txt
# Создаем правило фаервола, которое разрешает RDP только для этих IP
New-NetFirewallRule -DisplayName Allow RDP Region Only -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3389 -RemoteAddress $AllowedIPs
# Отключаем дефолтное правило, которое разрешает RDP всем
Disable-NetFirewallRule -DisplayName Remote Desktop - User Mode (TCP-In)
Уровень 3: Автоматический бан через Event Log
Самый эффективный способ — динамический бан. Если кто-то стучится и ошибается, его IP должен лететь в черный список фаервола немедленно.
# Порог попыток перед баном
$Threshold = 3
# За какой период смотреть логи (в минутах)
$TimeRange = 10
$StartTime = (Get-Date).AddMinutes(-$TimeRange)
# Собираем события неудачного входа (ID 4625)
$Events = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=$StartTime} -ErrorAction SilentlyContinue
if ($Events) {
# Группируем по IP-адресу (свойство 19 обычно содержит IP)
$FailedIPs = $Events | ForEach-Object {
[PSCustomObject]@{
IP = $_.Properties[19].Value
}
} | Group-Object IP | Where-Object { $_.Count -ge $Threshold -and $_.Name -ne "-" -and $_.Name -ne "127.0.0.1" }
foreach ($Item in $FailedIPs) {
$IP = $Item.Name
$RuleName = "AutoBan_$IP"
# Проверяем, нет ли уже такого правила
if (-not (Get-NetFirewallRule -Name $RuleName -ErrorAction SilentlyContinue)) {
Write-Host "Блокируем IP: $IP (Попыток: $($Item.Count))" -ForegroundColor Red
New-NetFirewallRule -DisplayName $RuleName -Name $RuleName -Direction Inbound -Action Block -RemoteAddress $IP
}
}
}
Логика проста:
1. Скрипт мониторит журнал событий на наличие Event ID 4625 (ошибка входа).
2. Если с одного IP пришло несколько ошибок за минуту — этот IP улетает в блок в фаерволе.
Зачем это нужно:
Защита RDP — это многослойный пирог. Одного сложного пароля мало. Блокировка учеток спасает от медленного перебора, GeoIP отсекает лишний мировой шум, а динамический бан добивает самых настырных.
Золотое правило:
#security #rdp #powershell #geoip #bruteforce #admin_future
✍2👍2