ru
Feedback
Admin Future

Admin Future

Открыть в Telegram

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

Больше
238
Подписчики
-324 часа
-407 дней
-3930 день
Архив постов
🐻 Uptime Kuma: Твой личный Status Page У тебя дома крутится Home Assistant, Plex, NAS и VPN. Как узнать, что VPN упал, пока ты в кафе? Zabbix для дома — это оверхед. Поставь Uptime Kuma. Это невероятно красивый и простой инструмент для мониторинга, который выглядит как профессиональные статус-страницы (StatusPage.io). Что умеет: ✅ Пинговать HTTP(s), TCP, Ping, DNS. ✅ Проверять срок действия SSL-сертификатов (напомнит заранее!). ✅ Слать уведомления в Telegram, Discord, Slack. ✅ Рисовать красивые графики аптайма ("сердечный ритм"). Запуск в Docker (одной командой):


docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Заходи на http://localhost:3001, настрой за 5 минут и чувствуй себя спокойным. #homelab #monitoring #uptimekuma #docker #selfhosted #tools

🤯 Load Average: Почему 1.0 — это не всегда 100% CPU? Мы видим в htop параметр Load Average: 4.0 (на 4 ядрах). Новички думают: "Ага, процессор загружен на 100%!". Сеньоры знают: "Не факт. Возможно, это диск умирает". В чем подвох: В Linux в расчет Load Average (LA) попадают процессы в двух состояниях: R (Running/Runnable): Реально считают на CPU или стоят в очереди к нему. D (Uninterruptible Sleep): Ждут ввода-вывода (Disk I/O, Network NFS). Аналогия с кассой: Состояние R: Очередь людей к кассе. Кассир (CPU) работает на износ. Состояние 😧 Кассир свободен, но покупатель ушел взвешивать бананы и не возвращается. Очередь стоит и ждет его. CPU простаивает (iowait), но LA растет! Как отличить? Смотрите в vmstat 1. Колонка r (run): Высокая? Проблема в CPU (код). Колонка b (blocked): Высокая? Проблема в Диске/IO. Не меняйте процессор, если у вас тормозит жесткий диск. #linux #kernel #loadaverage #performance #theory #interview

🗺 NextTrace: Трассировка, на которую приятно смотреть Мы привыкли к traceroute или mtr. Это сухие строки с IP-адресами и задержками. Но в 2025 году мы хотим видеть, как именно пакет летит из Москвы в Амстердам, а оттуда в Нью-Йорк. Встречайте NextTrace. Это traceroute нового поколения на Go. Что он делает: Геолокация: Сразу показывает страну, город и провайдера (AS) для каждого хопа. Визуализация: Умеет рисовать маршрут прямо на ASCII-карте в терминале или генерировать ссылку на 3D-карту в браузере. Параллельность: Работает быстрее классических утилит. Запуск:


# Установка одной строкой (Linux/MacOS)
curl nxtrace.org/nt | bash

# Запуск с картой
nexttrace --map google.com
Вы увидите, как ваши пакеты пересекают океан. Залипательное зрелище для субботнего вечера. #network #tools #nexttrace #visualization #cli #routing

🎭 Синдром самозванца: Ты не один Конец года — время подведения итогов. И часто в голову лезет мысль: "Я ничего не знаю. Вокруг все пишут на Go, деплоят в K8s и тюнят eBPF, а я тут скрипты на Bash ковыряю. Меня скоро разоблачат." Коллеги, это Синдром самозванца. Им страдают 70% сеньоров. Факты, которые лечат: 1. IT бесконечно: Никто не знает всего. Тот парень, который крут в Kubernetes, скорее всего, плавает в базах данных. 2. Google — это нормально: Сеньор отличается от джуна не тем, что помнит все флаги tar, а тем, что быстрее находит решение. 3. Ваша ценность — стабильность: Бизнесу плевать на то, какой модный стек вы знаете. Бизнесу важно, чтобы сервер работал. Если вы это обеспечиваете — вы профи. Выдохните. Вы проделали отличную работу в этом году. #career #psychology #impostersyndrome #motivation #adminlife #softskills

📝 Git: "Что я вообще делал на этой неделе?" Пятница — время писать отчеты (Status Report). Но память подводит: кажется, что всю неделю только пили кофе и чинили принтеры. Давайте спросим у Git, чем мы реально занимались. Алиас "git standup": Покажет список ваших коммитов за последние 7 дней во всех репозиториях текущей папки.


git log --all --since='7 days ago' --author="$(git config user.name)" --oneline --no-merges --date=short --pretty=format:"%ad: %s"
Сделаем красиво (добавьте в .gitconfig):


[alias]
    standup = !git log --all --since='7 days ago' --author=\"$(git config user.name)\" --oneline --no-merges --date=short --pretty=format:\"%ad: %s\"
Теперь просто пишем git standup — и отчет для менеджера готов за 1 секунду. #git #productivity #alias #cli #devops #reporting

🐠 Linux: Превращаем сервер в аквариум Если вы все сделали правильно (см. Пост 1), то работы у вас мало. Самое время расслабиться и помедитировать, глядя в терминал. Встречайте asciiquarium. Это анимация аквариума в ASCII-графике. Рыбки плавают, водоросли колышутся, иногда проплывает утка или лебедь. Установка (для релакса):


# Ubuntu/Debian (через Snap проще всего)
sudo snap install asciiquarium

# Или классика (требует perl-curses)
sudo apt install asciiquarium
Запускаем: asciiquarium Нажимаем F11 (Full Screen). Всё. Вы заняты. Вы "мониторите". #linux #fun #cli #asciiquarium #friday #relax

❄️ Read-Only Friday: Входим в "Зону смерти" 19 декабря — это рубеж. Начиная с сегодняшнего дня и до 12 января мы входим в зону повышенного риска. Почему нельзя деплоить (даже "маленькие фиксы"): 1. Внимание рассеяно: Половина команды мыслями уже выбирает подарки или планирует отпуск. Вероятность человеческой ошибки (Human Error) возрастает на 200%. 2. Закон подлости: Если баг вылезет, он вылезет 31 декабря в 18:00. 3. Саппорт недоступен: Если ваш апдейт положит базу, вендор Oracle/Microsoft может отвечать на тикет 48 часов. Манифест на сегодня: ✅ Читаем логи. ✅ Пишем документацию. ✅ Делаем бэкапы (и проверяем их!). ❌ Не обновляем ядра. ❌ Не меняем правила Firewall. Ваше спокойствие на каникулах куется сегодня. Ничего не трогайте. #readonlyfriday #codefreeze #adminlife #devops #newyear #safety

🧹 PowerShell: Чистим AD от "мертвых" компьютеров Конец года — лучшее время для инвентаризации. В Active Directory часто копятся записи компьютеров, которые уже год как на свалке. Это дыра в безопасности и мусор в отчетах. Найдем компьютеры, которые не входили в сеть более 180 дней. Нюанс: Мы используем свойство LastLogonDate. Оно реплицируется между контроллерами (в отличие от LastLogon), но с задержкой в 14 дней. Для поиска "старья" (180+ дней) эта погрешность неважна. Скрипт:


$DaysInactive = 180
$TimeLimit = (Get-Date).AddDays(-$DaysInactive)

Get-ADComputer -Filter {LastLogonDate -lt $TimeLimit -and Enabled -eq $true} -Properties LastLogonDate, OperatingSystem |
Select-Object Name, LastLogonDate, OperatingSystem |
Sort-Object LastLogonDate |
Format-Table -AutoSize

# Хотите сразу отключить их? Раскомментируйте:
# | Disable-ADAccount -WhatIf
Задача: Запустите в режиме "только чтение". Вы удивитесь, сколько у вас в домене машин с Windows 7, которых физически уже не существует. #windows #activedirectory #powershell #cleanup #security #scripting

🚀 Linux: Хватит ждать netstat. Используй ss Когда на сервере 10,000 соединений (DDoS или HighLoad), команда netstat -tunlap может зависнуть на минуту, съедая 100% CPU. Почему? Потому что она читает /proc файловой системы для каждого сокета. Это медленно. В 2025 году используйте ss (Socket Statistics). Она берет данные напрямую из ядра через Netlink API. Маст-хэв команды: Общая сводка (идеально для проверки на DDoS):


ss -s
Покажет мгновенно: "TCP: 50000 established". Кто слушает порты (аналог netstat):


ss -tulpn
Киллер-фича: Показать самые "тяжелые" соединения по памяти:


ss -tm
Если вы все еще пишете netstat, вы теряете время. #linux #network #performance #ss #netstat #troubleshooting

🔒 Linux: Как защитить файл от rm -rf (Даже от Root) Вы думаете, что пользователь root может всё? Ошибаетесь. Есть уровень файловой системы, где права rwx (777) не имеют значения. Это атрибуты ext4/xfs. Если вы хотите защитить критический конфиг (например, /etc/resolv.conf, который вечно перезаписывается NetworkManager-ом) или логи от хакера — используйте Immutable bit. 1. Делаем файл бессмертным:


sudo chattr +i /etc/critical_config.conf
Теперь попробуйте rm, mv или echo "test" > .... Вы получите: Operation not permitted. Даже под sudo. Даже под root. 2. Как проверить, почему файл не удаляется: Если ls -l показывает, что права есть, а удалить нельзя — смотрите атрибуты:


lsattr /etc/critical_config.conf
# Вывод: ----i---------e---- /etc/critical_config.conf
Видите букву i? Это оно. 3. Как вернуть всё назад:


sudo chattr -i /etc/critical_config.conf
Где применять: Защита скриптов автозагрузки, критических конфигов и бинарников от изменения вирусами-шифровальщиками. #linux #security #chattr #filesystem #hacks #root

💣 Bash: Защита от «Ой, я запустил это на Проде» У вас есть скрипт cleanup.sh или reset-db.sh. Однажды вы, уставший, случайно запустите его не на тестовом сервере, а на srv-prod-01. Добавьте этот Safety Check в начало любого опасного скрипта. Он спасет вам карьеру.

#!/bin/bash

# 1. Получаем имя хоста
CURRENT_HOST=$(hostname)

# 2. Проверяем, есть ли "prod" в имени
if [[ "$CURRENT_HOST" == *"prod"* ]]; then
    echo "⚠️  ВНИМАНИЕ! Вы запускаете опасный скрипт на ПРОДАКШЕНЕ ($CURRENT_HOST)!"
    echo "Введите 'YES', чтобы продолжить, или что угодно для отмены:"
    read -r CONFIRM
    
    if [ "$CONFIRM" != "YES" ]; then
        echo "❌ Отмена операции."
        exit 1
    fi
fi

echo "🚀 Поехали..."
# Дальше идет ваша логика
Этот простой if заставляет мозг проснуться перед тем, как нажать Enter. #bash #scripting #safety #production #failsafe #devops

🚀 PowerShell: Ускоряем чтение логов в 100 раз (XPath) Задача: Найти в Event Log событие блокировки пользователя (ID 4740) за последний час. Обычный админ пишет так:

# 🐢 Медленно (Client-side filtering)
Get-WinEvent -LogName Security | 
Where-Object { $_.Id -eq 4740 -and $_.TimeCreated -gt (Get-Date).AddHours(-1) }
Проблема: PowerShell сначала выкачивает ВСЕ миллион событий из журнала к себе в память, и только потом отсеивает нужные. Это вешает сервер. Сеньор использует Server-side filtering (XPath):

# 🐇 Быстро (Фильтрация на уровне движка Windows)
$XML = "*[System[(EventID=4740) and TimeCreated[timediff(@SystemTime) <= 3600000]]]"
Get-WinEvent -LogName Security -FilterXPath $XML
Результат: Вместо 2 минут команда отрабатывает за 0.3 секунды. Фильтруйте данные на источнике, а не в пайплайне. #powershell #windows #performance #scripting #optimization #xml

💀 Cron мертв. Да здравствуют Systemd Timers Мы все привыкли писать crontab -e. Это просто, но убого: ❌ Если задача упала, вы узнаете об этом только если настроили почту. ❌ Логи надо перенаправлять вручную (>> /var/log/my.log 2>&1). ❌ Нельзя сказать: «Запусти бэкап только ПОСЛЕ того, как загрузилась база данных». В 2025 году Архитектор использует Systemd Timers. Как это сделать: Создаем сервис (/etc/systemd/system/backup.service): Описываем, что делать.

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
Создаем таймер (/etc/systemd/system/backup.timer): Описываем, когда делать.

[Timer]
OnCalendar=*-*-* 03:00:00  # Каждый день в 3 ночи
Persistent=true            # Если сервер был выключен, запустить сразу при включении!

[Install]
WantedBy=timers.target
Активируем: systemctl enable --now backup.timer Бонусы: * systemctl list-timers — показывает, когда был последний запуск и когда следующий. * journalctl -u backup.service — все логи из коробки. * Можно добавить OnFailure=alert.service, чтобы телеграфировать об ошибках. #linux #systemd #cron #automation #modern #bestpractice

🔑 CMD: Вспоминаем забытый пароль от Wi-Fi Классика: Приходит начальник с новым айфоном. "Подключи меня к нашему Wi-Fi в переговорке". А вы этот пароль вводили 2 года назад и забыли. Он "зазвездочен" в настройках Windows. Не надо лезть в админку роутера. Windows помнит всё в открытом виде. Одна команда в консоли:

netsh wlan show profile name="Office_Guest" key=clear
(Где Office_Guest — имя вашей сети) Листаем вниз до раздела Security settings -> Key Content. Там и лежит ваш пароль открытым текстом. Совет: Если забыли точное название сети, сначала введите netsh wlan show profiles, чтобы увидеть весь список сохраненных сетей. Работает на любом ноутбуке с Windows. Спасает в 10 случаях из 10. #windows #wifi #cmd #hacks #adminlife #network

🚦 Linux: Какая программа «жрет» интернет? (nethogs) Сервер тормозит. Канал забит. Вы запускаете top — там всё чисто по CPU. Вы запускаете iftop — там куча IP-адресов, но непонятно, какой именно процесс генерирует этот трафик. Это бэкап? Или Nginx? Или майнер? Вам нужен nethogs. Это как top, но для трафика. Он группирует скорость не по IP, а по PID и названию процесса. Запуск:

sudo nethogs eth0
Что вы увидите:

PID   USER     PROGRAM           SENT      RECEIVED
1234  root     /usr/bin/python3  105 KB/s  10 KB/s
5678  www-data /usr/sbin/nginx    10 KB/s   5 KB/s
Сразу видно: Python-скрипт (вероятно, бэкап) выжирает весь аплоад. Убиваем процесс, спасаем сеть. Установка: apt install nethogs / yum install nethogs #linux #network #troubleshooting #nethogs #cli #traffic

👻 Windows: Режим «Призрака» в RDP (Shadow Mode) Ситуация: Звонит бухгалтер. "У меня 1С не открывается, ошибка какая-то". Вы подключаетесь по RDP — и выкидываете пользователя из сессии (экран блокируется). Приходится кричать в трубку: "Ну что там написано?", а в ответ: "Ой, всё пропало, черный экран!". В Windows встроен штатный способ подключиться к сессии пользователя, не выкидывая его (он видит, что вы делаете). Как это сделать: Узнаем ID сессии пользователя:

qwinsta /server:BUH-PC-01
# Видим: buhgalter  ID: 1  Active
Подключаемся в режиме Shadow:

mstsc /shadow:1 /v:BUH-PC-01 /control
Что значат ключи: /shadow:1 — подключиться к сессии с ID 1. /control — разрешить управление мышкой/клавиатурой (без этого будет только просмотр). /noConsentPrompt — подключиться без спроса (нужна настройка GPO, иначе у пользователя вылезет окошко "Разрешить админу просмотр?"). Идеально для техподдержки. Вы видите проблему глазами пользователя. #windows #rdp #helpdesk #tips #shadowmode #cmd

⏱ Curl: Почему сайт тормозит? (Разбираем на атомы) Когда пользователь говорит «сайт долго грузится», это эмоции. Админу нужны цифры. Проблема в DNS? Или SSL-хендшейк долгий? Или бэкенд тупит? curl умеет раскладывать тайминги запроса по полочкам. Команда:

curl -w "DNS: %{time_namelookup}s \nConnect: %{time_connect}s \nSSL Handshake: %{time_appconnect}s \nTTFB: %{time_starttransfer}s \nTotal: %{time_total}s \n" -o /dev/null -s https://google.com
Что значат цифры: DNS: Сколько искали IP. Если долго — меняйте DNS-сервер. Connect: TCP-подключение. Если долго — проблемы с сетью/маршрутами. SSL: Криптография. TTFB (Time To First Byte): Время, пока сервер думал над ответом. Если здесь 2 секунды — идите бить разработчиков, база тормозит. Совет: Засуньте эту "колбасу" в алиас curl-time. #network #curl #troubleshooting #performance #web #cli

👑 Windows: Режим Бога (SYSTEM) через PsExec Бывают ситуации, когда даже прав «Администратора» не хватает. Например, нужно удалить защищенный ключ реестра, убить системный процесс или проверить, почему скрипт в Task Scheduler падает (он запускается от SYSTEM, и у него другое окружение). Вам нужно стать системой. Используем классику от Марка Руссиновича — PsExec. Команда для локального запуска:

psexec -i -s -d cmd.exe
Разбор флагов: * -i: Интерактивный режим (показать окно). * -s: Запуск от имени учетной записи Local System (NT AUTHORITY\SYSTEM). * -d: Не ждать завершения процесса. В открывшейся консоли наберите whoami. Вы увидите nt authority\system. Теперь у вас прав больше, чем у Администратора. Вы можете править скрытые ветки реестра и смотреть файлы, доступные только ОС. ⚠️ Warning: Антивирусы часто ругаются на PsExec (HackTool). Добавьте папку Sysinternals в исключения на админской машине. #windows #sysinternals #security #troubleshooting #godmode #psexec

🔥 Blameless Post-Mortem: Почему нельзя искать виноватых Когда падает прод, инстинкт руководителя (и неопытного лида) — найти виновного. «Кто запушил конфиг? Петя? Лишить премии!» Это путь в никуда. Архитектор строит культуру Blameless Post-Mortem (Разбор полетов без обвинений). Почему это выгодно: 1. Честность: Если Петя знает, что его накажут, он будет скрывать ошибку до последнего, пока сервер не сгорит. Если знает, что не накажут — он придет и скажет: «Я сломал, давайте чинить». Время реакции сокращается в разы. 2. Системный подход: Ошибка человека — это всегда ошибка системы. Плохой вопрос: «Почему Петя удалил базу?» Вопрос архитектора: «Почему система позволила Пете удалить базу одной командой без подтверждения и бэкапа?» Правило: Мы не чиним людей (увольнением). Мы чиним процессы (автоматизацией и защитой от дурака). В следующий раз, когда что-то сломается, начните разбор с фразы: «Мы не ищем виновных, мы ищем причину сбоя». #softskills #management #sre #postmortem #culture #devops

🕰 Linux: Кто убил сервер в 3 часа ночи? (atop) Утро понедельника. Сервер перезагрузился ночью. Мониторинг показывает дырку в графиках. top и htop показывают текущую картину, где всё спокойно. Как узнать, что произошло в прошлом? Ваш спаситель — atop. В отличие от htop, он умеет работать как демон и записывать состояние системы (снапшоты) каждые 10 минут. Как отправиться в прошлое:

# Читаем лог за сегодня (или выберите файл за вчера)
atop -r /var/log/atop/atop_20251215
Управление машиной времени: * t — шаг вперед на 10 минут. * T — шаг назад. * b — прыгнуть к конкретному времени (например, 02:55). Вы увидите полную картину того момента: какой процесс съел CPU, закончилась ли память (OOM) или диск ушел в полку по IOPS. Если atop не стоит, ставьте прямо сейчас. Когда сервер упадет в следующий раз, вы скажете себе спасибо. #linux #troubleshooting #atop #monitoring #debug #logs