uz
Feedback
Admin Future

Admin Future

Kanalga Telegram’da o‘tish

Превращаем эникейщиков в System Architects. 🚀 Твой навигатор в мире IT-инфраструктуры: ▪️ Hard Skills: Linux, Windows, Network, Security ▪️ Tools: Лучший софт и скрытые фишки ▪️ Mindset: Как думать, чтобы платили много Админ - @maksimshap

Ko'proq ko'rsatish
239
Obunachilar
-2224 soatlar
-387 kunlar
-3630 kunlar
Postlar arxiv
🪟 Windows: Продвинутый мониторинг сетевых соединений без TCPView 🌐 Забудь про сторонний софт. Если тебе нужно увидеть, какой процесс занимает порт прямо сейчас и сколько трафика он генерирует, в PowerShell есть мощнейшая связка. Команда дня:

Get-NetTCPConnection -State Established | 
    Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, 
    @{Name="ProcessName";Expression={(Get-Process -Id $_.OwningProcess).Name}} | 
    Sort-Object LocalPort | 
    Out-GridView
1. Out-GridView: Откроет отдельное окно с таблицей, где можно мгновенно фильтровать по IP или имени процесса. 2, Native: Работает на любом сервере "из коробки" (даже в Server Core). 3. Безопасность: Помогает быстро вычислить подозрительные процессы, которые стучатся на внешние IP. 🕵️‍♂️ #windows #powershell #networking #security #sysadmin #monitor #tcp

🐧 Linux: Ищем утечки памяти через slabtop 🧠 Бывает, что free -m показывает: память занята, но top клянется, что ни один процесс не потребляет много. Скорее всего, память «утекла» в Slab — кэш ядра для объектов (дескрипторы файлов, иноды и т.д.). В 2026 году при активном использовании контейнеров это частая беда. Как найти виновника: Запусти встроенную утилиту:

sudo slabtop -s c
(Флаг -s c сортирует по размеру кэша). Куда смотреть: Если в топе висят dentry или inode_cache , значит, система открыла миллионы мелких файлов и не закрыла их. Как быстро «сбросить» кэш (без вреда для системы):

echo 2 > /proc/sys/vm/drop_caches 
(2 — освобождает dentry и иноды. 1 — только pagecache. 3 — всё вместе). #linux #kernel #performance #memory #troubleshooting #sysadmin #slab

🧠 Skill: "Terraform Drift Detection" — навык №1 в 2026 году ☁️ В эпоху IaC (Infrastructure as Code) самая большая проблема — это Drift (отклонение). Это когда кто-то зашел в консоль AWS/Azure/Yandex руками и поменял тип инстанса или открыл порт, а в коде Terraform осталось старое значение. Почему это опасно: При следующем запуске terraform apply твои ручные правки либо затрутся, либо всё упадет с ошибкой. Что учить: 1. Terraform Plan Automation: Настрой запуск terraform plan в CI/CD раз в час. 2. Инструменты: Посмотри в сторону Driftctl или встроенного режима --refresh-only. 3. Команда для проверки "разрыва" между кодом и реальностью: terraform plan -refresh-only Умение находить и устранять такие расхождения без даунтайма — это то, за что сегодня платят Senior DevOps инженерам. 🚀 #devops #terraform #iac #cloud #skills #automation #gitops

🪟 Windows: Отключаем "Search Highlights" и лишний мусор через реестр 🧹 Заметили, как поиск в Windows 11/Server 2025 стал забиваться картинками, новостями и рекламой ("Search Highlights")? Это не только бесит, но и жрет ресурсы процесса SearchHost.exe. Для админской машины это лишний мусор. Убираем всё лишнее одной командой в PowerShell:

# Отключаем интернет-результаты в поиске и "интересные факты"
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search"
Set-ItemProperty -Path $path -Name "BingSearchEnabled" -Value 0
Set-ItemProperty -Path $path -Name "SearchboxTaskbarMode" -Value 0

# Отключаем Search Highlights (те самые картинки в поиске)
$path2 = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search"
if (!(Test-Path $path2)) { New-Item $path2 -Force }
Set-ItemProperty -Path $path2 -Name "EnableAllowedDaysCondition" -Value 0
Результат: Чистый, быстрый поиск только по локальным файлам и приложениям. Минимум сетевого трафика в сторону Bing. ✨ #windows #registry #powershell #optimization #sysadmin #clean #windows11

🐧 Linux: Ошибка "Read-only file system"? Спасаем данные без ребута 🛠️ Страшный сон админа: файловая система внезапно ушла в read-only из-за ошибок в логах или сбоя питания. Сервисы встали, база упала. Прежде чем бежать за новым диском, можно попробовать «пересобрать» её на лету. Шаг 1: Проверяем, что случилось

dmesg | grep -i "error|jbd2"
тут будет причина (обычно битые блоки или сбой журнала). Шаг 2: Магия перемонтирования Если диск физически жив, можно принудительно вернуть ему режим записи:

mount -o remount,rw /
Шаг 3: Исправление «на ходу» (для ext4) fsck -n /dev/sda1 — только проверка (без правок). Если ошибок много, используем debugfs для вытаскивания критичных конфигов, пока диск окончательно не «отвалился». Совет: Если такое случилось на виртуалке, проверь задержки (latency) на СХД — часто диск уходит в RO, если гипервизор не ответил вовремя. 📡 #linux #filesystem #troubleshooting #sysadmin #ext4 #storage

🌐 Networking: Headscale — свой Mesh-VPN без чужих облаков Классические VPN (OpenVPN/IPsec) с их "звездой" и единой точкой отказа в 2026 году выглядят архаично. Все переходят на Tailscale (Mesh-сеть на базе WireGuard), но админы боятся использовать чужие контроллеры управления. Твой выбор: Headscale. Это Open Source реализация контроллера Tailscale, которую ты хостишь у себя. В чем соль: NAT Traversal: Тебе не нужно открывать порты. Устройства находят друг друга за любыми NAT-ами (используя STUN/DERP). Mesh: Трафик идет от сервера А к серверу Б напрямую (P2P), а не через центральный шлюз. ACL: Ты управляешь доступом через JSON-правила (кто кого видит). Команда для регистрации клиента: tailscale up --login-server https://vpn.tvoja-kompaniya.ru --authkey [KEY] Это идеальная замена корпоративному VPN для удаленщиков и связи между серверами в разных облаках. #networking #vpn #wireguard #headscale #opensource #devops #privacy 🕸️

🪟 Windows: Кто «стучит» в интернет? Ловим malware без Wireshark Подозрение, что сервер соединяется с C&C-сервером хакеров или майнинг-пулом? Wireshark ставить нельзя, а Firewall логи слишком объемные. В Windows есть скрытый журнал, который пишет только DNS-запросы. Как включить «черный ящик» DNS: По умолчанию этот лог выключен, чтобы не тратить ресурс. Открываем Event Viewer (eventvwr.msc). Идем: Applications and Services Logs -> Microsoft -> Windows -> DNS Client Events -> Operational. Правой кнопкой -> Enable Log. Что мы увидим: Теперь каждое разрешение имени (хост -> IP) будет падать в событие ID 3008. QueryOptions: 100000000 QueryName: bad-hacker-site.com Это лучший способ найти скрытые майнеры или «маячки» внутри корпоративной сети, не перехватывая гигабайты трафика. #windows #security #forensics #dns #sysadmin #troubleshooting #blueteam 🕵️‍♂️

🐧 Linux: Спасаем базу данных от OOM Killer Бывало такое? Серверу не хватило памяти, пришел OOM Killer (Out of Memory) и убил... нет, не зависший PHP-скрипт, а твой основной PostgreSQL. 💀 Почему? Потому что БД потребляет больше всего памяти, и для ядра она выглядит как самый "жирный" кандидат на расстрел. Решение: Настроить oom_score_adj. Это число от -1000 (бессмертный) до +1000 (убить первым). Как защитить критический процесс: Находим PID процесса (например, postgres):

pgrep -f postgres | head -1
Запрещаем OOM Killer'у трогать его (ставим -1000):

echo -1000 > /proc/[PID]/oom_score_adj
Как сделать это вечным (в systemd): Добавьте в unit-файл сервиса (systemctl edit postgresql):

[Service]
OOMScoreAdjust=-900
Теперь, когда память кончится, Linux убьет веб-сервер, кэш, SSH-сессию, но база данных останется стоять до последнего. #linux #kernel #oom #postgresql #sysadmin #reliability #systemd 🛡️

💿 Windows Storage: Как вычислить «паршивую овцу» в дисковом массиве? Бывает, что сервер или кластер (S2D) начинает безбожно тупить, но все статусы светятся зеленым «Healthy». В 90% случаев проблема в одном диске, который еще не сдох, но уже «тормозит» весь массив огромными задержками (latency). 🐌 Стандартный мониторинг это часто пропускает, поэтому лезем под капот к счетчикам надежности (Reliability Counters). 🛠 Скрипт для поиска проблемных дисков:

Get-PhysicalDisk | ForEach-Object {
    $disk = $_
    $stats = $disk | Get-StorageReliabilityCounter
    
    # Пытаемся выцепить имя узла (актуально для кластеров)
    $NodeName = "Unknown"
    if ($disk.FriendlyName -like "*.*") {
        $NodeName = $disk.FriendlyName.Split(".")[1]
    }

    [PSCustomObject]@{
        Node            = $NodeName
        Model           = $disk.Model
        MediaType       = $disk.MediaType
        SerialNumber    = $disk.SerialNumber
        
        # Конвертация: 100 наносекунд -> миллисекунды
        ReadLatMax_ms   = [math]::Round($stats.ReadLatencyMax / 10000, 2)
        WriteLatMax_ms  = [math]::Round($stats.WriteLatencyMax / 10000, 2)
        
        ReadErrors      = $stats.ReadErrorsTotal
        WriteErrors     = $stats.WriteErrorsTotal
    }
} | Sort-Object WriteErrors, WriteLatMax_ms -Descending | Format-Table -AutoSize
📊 Как читать результат (нормативы): 1. Read/WriteLatMax_ms: Это пиковая задержка в миллисекундах. * SSD: Норма до 20ms. Пики > 50ms — повод напрячься. ⚡ * HDD: Норма до 200ms. Пики > 1000ms (1 сек) — диск «умирает» или перегружен. 🐢 2. Read/WriteErrors: В идеальном мире здесь должен быть 0. Любое число больше нуля — это ошибки чтения/записи. Пора проверять кабели, бэкплейн или готовить замену диску. 🛠 💡 Когда запускать? * Когда SQL или 1С начинают «фризить» без видимых причин. 📉 * При регламентном объезде серверов раз в месяц. * Если диск периодически отваливается из RAID-массива. Этот скрипт — твой рентген для дисковой подсистемы. Сохраняй в шпаргалки! 📝 #windows #powershell #storage #sysadmin #troubleshooting #s2d #hardware 🛡

🏛️ Пятничный лонгрид: Искусство «ленивого» админа или почему твоя документация — это код Все мы знаем классику: админ, который работает 24/7, постоянно в мыле и с красными глазами, считается «героем». Но в 2026 году настоящий герой — это тот, кто в пятницу вечером спокойно пьёт кофе, потому что его инфраструктура умеет «лечить» сама себя. ☕🧘‍♂️ Давай разберем три столпа, на которых держится спокойный сон сисадмина. 1. Документация в стиле README.md Забудь про Word-файлы в папке «Общее». Если инструкции нет в Git-репозитории рядом с кодом или скриптами — её не существует. Правило: Любое изменение в системе = коммит в репозиторий с описанием. Инструмент: Изучи Obsidian или Logseq для личной базы знаний (Zettelkasten). Это позволяет связывать ошибки (например, «Падение БД») с их решениями графами связей. 2. Bash/PowerShell как «внешняя память» Если ты ввел команду в консоли дважды — запиши её в скрипт. Если трижды — параметризируй её (сделай переменные). Bash: Используй history | grep "что-то_сложное", чтобы вспомнить тот самый длинный конвейер из awk и sed, который ты мучил в прошлый вторник. PowerShell: Создай свой модуль MyCompany.Utils.psm1 и храни там функции для сброса паролей, очистки квот и выгрузки отчетов. 3. Сетевая топология — карта твоего мира Самый быстрый способ найти проблему в сети — взглянуть на актуальную схему. Но рисовать её в Visio руками — это ад. В 2026-м мы используем Diagrams as Code. Попробуй Mermaid.js: Ты просто пишешь текст, а Git-лаборатория или Obsidian рисуют схему:

graph TD
    User-->Internet
    Internet-->Firewall[pfsense]
    Firewall-->Switch(L3 Switch)
    Switch-->Server1[Proxmox Node 1]
    Switch-->Server2[Proxmox Node 2]
    Server1-->VM1[Nginx Proxy]
🚀 Пятничный совет «на миллион»: Прежде чем уйти домой, проверь три вещи: * Бэкапы: Зайди и посмотри глазами, что сегодняшний бэкап весит не 0 байт. * Snapshot-ы: Удали старые снапшоты виртуалок. В понедельник они превратятся в «тормоза» дисковой подсистемы. * Уведомления: Убедись, что телефон не в режиме «Не беспокоить» для критических алертов от Zabbix/Grafana. Помни: Лучший сисадмин — это тот, чьего имени в компании не знают, потому что «всё просто работает». Хороших выходных, коллеги! И пусть ваш uptime стремится к бесконечности. 📈☕ #friday #longread #sysadmin #lifehack #documentation #automation #admin_future #it_culture

🧠 Skill: Протокол SSH Multiplexing — ускоряем работу в 10 раз Если ты часто прыгаешь по одним и тем же серверам, то знаешь, как бесит ждать 2-3 секунды, пока SSH установит соединение. В 2026 году админы используют Multiplexing, чтобы переиспользовать уже открытое TCP-соединение для новых сессий. 🚀 Как настроить в своем ~/.ssh/config:

Host *
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h-%p
    ControlPersist 10m
Что это дает: 1. Первое подключение: Обычное (ввод пароля/ключа). 2. Второе и последующие: Мгновенное открытие консоли (0.1 сек). 3. ControlPersist 10m: Соединение будет висеть в фоне 10 минут после закрытия последней сессии, чтобы ты мог вернуться мгновенно. Это критически ускоряет работу Ansible и твоих собственных Bash-скриптов, которые ходят по серверам. 🏎️ #skills #ssh #linux #performance #sysadmin #productivity #automation 🌐

⚡ PowerShell: Как узнать, кто удалил файл на сетевом диске? «Я ничего не трогал, оно само исчезло!» — классика. 🤡 Если в Active Directory включен аудит доступа к объектам, PowerShell поможет быстро найти виновника без долгого копания в Event Viewer. Скрипт для поиска события удаления (Event ID 4660):

# Укажите время, за которое ищем логи (последние 24 часа)
$TimeFilter = (Get-Date).AddDays(-1)

$Events = Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    ID = 4660
    StartTime = $TimeFilter
} -ErrorAction SilentlyContinue

foreach ($Event in $Events) {
    [xml]$EventXml = $Event.ToXml()
    $User = $EventXml.Event.EventData.Data | Where-Object { $_.Name -eq 'SubjectUserName' } | Select-Object -ExpandProperty '#text'
    $Time = $Event.TimeCreated
    
    Write-Host "🗑️ Файл был удален пользователем: $User в $Time" -ForegroundColor Red
}
Нюанс: Чтобы это работало, на нужной папке в свойствах безопасности (вкладка «Аудит») должен быть включен аудит на удаление. #windows #powershell #security #audit #active_directory #sysadmin 📂

🐧 Bash: Проверка SSL-сертификатов до того, как они «протухнут» Пятница — идеальный день, чтобы проверить, не отвалится ли какой-нибудь домен в субботу утром. 📉 Вместо того чтобы заходить на сайты руками, напишем скрипт, который массово проверяет даты истечения через openssl. Полезный скрипт для списка доменов:

#!/bin/bash
# Список доменов для проверки
DOMAINS=("google.com" "github.com" "my-company.ru")

echo "⏳ Проверка сертификатов..."
for domain in "${DOMAINS[@]}"; do
    expiration_date=$(echo | openssl s_client -servername "$domain" -connect "$domain":443 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
    
    # Переводим в формат timestamp для сравнения
    exp_epoch=$(date -d "$expiration_date" +%s)
    now_epoch=$(date +%s)
    days_left=$(( ($exp_epoch - $now_epoch) / 86400 ))

    if [ $days_left -lt 7 ]; then
        echo "🚨 $domain: ОСТАЛОСЬ ВСЕГО $days_left ДНЕЙ!"
    else
        echo "✅ $domain: еще $days_left дней"
    fi
done
Почему это маст-хэв: Этот скрипт можно легко обернуть в телеграм-бота, чтобы получать алерты, если до истечения осталось меньше 10 дней. Безопасность — это когда всё работает тихо. 🤫 #linux #bash #ssl #security #automation #sysadmin #devops 🔐

🌐 Networking: DNS-over-HTTPS (DoH) в Linux — приватность уровня 2026 В 2026 году обычный DNS-трафик (порт 53) — это открытая книга для любого, кто сидит на транзите. Если хочешь скрыть свои запросы от посторонних глаз и защититься от подмены DNS, пора переходить на DoH. В современных дистрибутивах (Ubuntu 24.04+/Debian 13+) это настраивается через systemd-resolved. 🔐 Как включить за 1 минуту: Отредактируй конфиг: sudo nano /etc/systemd/resolved.conf Добавь или измени строки:

[Resolve]
DNS=1.1.1.1#cloudflare-dns.com
DNSOverHTTPS=yes
Перезапусти службу: sudo systemctl restart systemd-resolved Как проверить: resolvectl status — в строке "Protocols" должно появиться +DoH. Теперь твои DNS-запросы зашифрованы внутри обычного HTTPS-трафика. Провайдер видит, что ты куда-то ходишь, но не знает, на какие именно домены. 🕵️‍♂️ #networking #security #linux #doh #privacy #sysadmin #dns 🛡️

⚡ PowerShell: Ищем «тяжелые» файлы быстрее, чем проводник Когда на диске Windows Server внезапно заканчивается место, стандартный поиск Windows — это мучение. 🐌 Через PowerShell можно выудить список самых больших файлов за считанные секунды и сразу отсортировать их. Полезный скрипт для поиска ТОП-10 тяжеловесов:

# Ищем файлы больше 500Мб в папке C:\Shares
$path = "C:\Shares"
Get-ChildItem -Path $path -Recurse -File -ErrorAction SilentlyContinue | 
    Sort-Object Length -Descending | 
    Select-Object Name, @{Name="Size(GB)";Expression={$_.Length / 1GB}}, Directory | 
    Select-Object -First 10 | 
    Format-Table -AutoSize

Write-Host "📊 Сканирование завершено. Время чистить диски!" -ForegroundColor Cyan
Фишка: Параметр -ErrorAction SilentlyContinue позволяет скрипту не спотыкаться на системных папках, куда у админа нет доступа, и продолжать поиск. Вывод в гигабайтах сразу дает понять масштаб бедствия. 📈 #windows #powershell #sysadmin #storage #cleanup #automation 🧹

🐧 Bash: Параллельный запуск задач без боли и GNU Parallel Многие админы не знают, что для параллельного выполнения задач в скриптах не обязательно ставить тяжелые утилиты. В Bash есть встроенный механизм управления фоновыми процессами через wait. Это маст-хэв, когда нужно, например, одновременно проверить доступность 50 хостов или сжать 20 папок с логами. 📦 Пример «умного» скрипта:

#!/bin/bash

targets=("192.168.1.1" "192.168.1.2" "192.168.1.3") # и так далее

for ip in "${targets[@]}"; do
    (
        if ping -c 1 -W 1 "$ip" > /dev/null; then
            echo "✅ $ip доступен"
        else
            echo "❌ $ip лежит"
        fi
    ) & # Запуск в фоне
done

wait # Ждем завершения всех фоновых задач
echo "🎯 Все проверки завершены!"
Почему это OK: 1. Скорость: Скрипт выполняется за время самого долгого пинга, а не по очереди. 2. Простота: Никаких лишних зависимостей. 3. Контроль: Команда wait гарантирует, что скрипт не пойдет дальше, пока все «хвосты» не закроются. #linux #bash #automation #sysadmin #performance #scripting 🛠️

🧠 Skill: MTR — "Швейцарский нож" сетевой диагностики Забудь про обычный ping или traceroute. Когда клиент говорит "интернет тормозит", тебе нужен MTR (My Traceroute). Он объединяет пинг и трассировку, показывая потери пакетов на каждом прыжке (hop) в динамике. 📈 Как читать вывод mtr: Запусти:
mtr -rw google.com
Смотри на колонку Loss %: * Если потери только на 1-2 прыжке — проблема в локалке или у провайдера. * Если потери только в середине и дальше пропадают — это ICMP rate limiting (не страшно). * Если потери начались на 5-м прыжке и идут до самого конца — ты нашел проблемный узел. 🎯 * Команда для Linux: sudo apt install mtr -y && mtr 8.8.8.8 Для Windows: Рекомендую форк WinMTR-Redux. Умение читать графики MTR — это навык, который отделяет админа-новичка от сетевого инженера. 👨‍💻 #networking #mtr #troubleshooting #skills #sysadmin #devops 🌐

🐧 Bash: Умная очистка логов без риска убить систему Частая ошибка админа — удалять логи командой rm. Если сервис продолжает писать в файл, место на диске не освободится (файл останется "призраком"), пока сервис не рестартанут. 👻 Правильный путь — обнуление через перенаправление. Скрипт-однострочник для безопасной очистки:

#!/bin/bash
# Находим все логи больше 500Мб в /var/log и обнуляем их содержимое
find /var/log -type f -name "*.log" -size +500M -exec sh -c '> "{}"' \;

echo "✅ Тяжелые логи обнулены, дескрипторы сохранены!"
Почему это OK: 1. > "{}" — очищает содержимое файла, но оставляет сам файл на месте. 2. Сервис (nginx, mysql) не теряет связь с файлом и продолжает писать в него без рестарта. 3. Система мгновенно видит свободное место. 📦 #linux #bash #sysadmin #automation #storage #server_cleanup 🛠️

🧠 Skill: JSON — универсальный клей админа Раньше мы грепали текст (grep | awk). В 2026 году, когда вокруг Docker, Kubernetes и REST API, вывод почти всегда можно получить в JSON. Парсить JSON как текст — это путь к ошибкам. Учимся работать с объектами, а не строками: 🐧 Linux (jq): Не делайте grep "status", делайте:

curl -s https://api.site.com/health | jq '.services[] | select(.status=="down") | .name' 
(Выведет имена только упавших сервисов). 🪟 PowerShell: Здесь JSON становится родным объектом .NET автоматически:

$data = curl https://api.site.com/health | ConvertFrom-Json $data.services | Where-Object { $_.status -eq 'down' } | Select-Object name
Совет: Если консольная утилита имеет флаг --json (как kubectl, aws cli, docker), всегда используйте его для скриптов. Это делает вашу автоматизацию неубиваемой при смене форматирования вывода разработчиками. #skills #json #jq #powershell #bash #devops #api

⚡ PowerShell: Настоящая многопоточность с -Parallel В старых версиях PowerShell (5.1) мы страдали с Start-Job (медленно) или Runspaces (сложно). В PowerShell 7+ (который к 2026 году должен стоять везде) циклы ускоряются в 10-50 раз одной опцией. Задача: Пингaнуть 100 серверов или проверить службу. Обычный foreach будет делать это последовательно 5 минут. Решение 2026 года:

$servers = 1..100 | ForEach-Object { "Server-$_" }

# Запускаем в 10 потоков одновременно
$results = $servers | ForEach-Object -Parallel {
    # Внутри этого блока - отдельный поток
    $s = $_
    $check = Test-NetConnection -ComputerName $s -Port 443 -WarningAction SilentlyContinue
    
    # Возвращаем объект (а не текст!)
    [PSCustomObject]@{
        Server = $s
        Port443 = $check.TcpTestSucceeded
        Time = (Get-Date).ToString("HH:mm:ss")
    }
} -ThrottleLimit 10

# Красивый вывод
$results | Format-Table -AutoSize
Фишка: Параметр -ThrottleLimit регулирует нагрузку на вашу машину. Это самый простой способ ускорить рутину админа. #windows #powershell #scripting #performance #automation #sysadmin