Admin Future
241 subscribers
50 photos
1 video
4 files
87 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
🪟 Windows: 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-кластерах слишком высока.

Золотые правила хорошего постмортема:
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). Это продвинутый вьювер, который понимает структуру логов «из коробки».

Почему это мастхэв:
• Слияние логов: 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:

$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, пароли и имена серверов в чат — ты сам отдаешь доступ.

Как делать правильно:
• Анонимизация: 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 года. В прошлом выпуске мы похоронили классические гипервизоры, но остался вопрос: где хранить данные этих тысяч виртуалок и контейнеров, если мы отказались от проприетарных СХД за десятки миллионов рублей?

В мире отечественных 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 году — это элита. Ты больше не зависишь от сервисных контрактов, ты сам строишь фундамент, на котором стоит весь бизнес.

Золотое правило: Данные стоят дороже железа. Всегда проверяй Recovery Traffic Limit, чтобы восстановление одного диска не «положило» всю сеть компании.

#собеседование_AF #sds #ceph #longhorn #storage #nvme #admin_future
👍5
🐧 Linux: Синхронное плавание данных через rsync

Привет, коллеги! Четверг, 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) на прочность. Если твой сервер не знает, в каком состоянии его батареи, он просто «умрет» в самый неподходящий момент, оставив тебя наедине с битой файловой системой и гневными письмами от юзеров.

Используй 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 году сложность систем такова, что даже самый опытный админ может забыть закрыть один порт в фаерволе или сменить дефолтный пароль на новой службе. Ошибка стоит дорого. Твой главный инструмент здесь — не феноменальная память, а простой текстовый чек-лист.

Почему это работает:
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 году, когда на одном сервере крутится сотня контейнеров и сервисов, искать виновника вручную — это как искать иголку в стоге сена.

Используй 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. Мы сделаем это прямо в консоли.

Используем 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. Психология: В конце недели внимание притупляется, и цена «опечатки» в конфиге возрастает.

Что делать в пятницу:
Занимайся документацией, пиши инструкции в Markdown, чисти старые логи или наводи порядок в тикетах. Пятница — день тишины и подготовки.


Вывод: Хороший админ — это не тот, кто героически чинит сервер в субботу утром, а тот, кто спокойно отдыхает, потому что ничего не трогал в пятницу.

#skills #adminlife #friday #management #bestpractices #admin_future
🛡️ Защита RDP: Как не дать подобрать ключи от сервера

Привет, коллеги! Оставлять 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 отсекает лишний мировой шум, а динамический бан добивает самых настырных.


Золотое правило: Лучший RDP — это тот, который доступен только через VPN. Если всё же нужен прямой доступ — используй все три уровня защиты.

#security #rdp #powershell #geoip #bruteforce #admin_future
2👍2
🐧 Linux: ss — Твой новый сетевой бинокль

Привет, коллеги! Начинаем неделю с правильных инструментов. Если ты до сих пор по привычке вбиваешь netstat, чтобы посмотреть открытые порты, то пора обновлять мышечную память. В современных дистрибутивах netstat считается устаревшим (legacy), а на замену ему пришла утилита ss из пакета iproute2.

Почему ss лучше:
1. Скорость: Она берет информацию напрямую из недр ядра (через tcp_diag), а не сканирует файлы в /proc, что критично на серверах с тысячами соединений.
2. Детализация: Она показывает гораздо больше внутренней информации о TCP-стеке, включая таймеры и параметры заторов.
3. Фильтры: Ты можешь искать соединения не просто через grep, а используя встроенные фильтры по состояниям или портам.


Практика:


# Показать все слушающие TCP и UDP порты с именами процессов
ss -tulpn

# Показать только установленные соединения (Established)
ss -t state established

# Найти все соединения с конкретным IP
ss dst 192.168.1.50


Зачем это нужно:
Для мгновенной диагностики сети. Пока netstat будет «тупить» на нагруженном сервере, ss выдаст результат мгновенно. Это база, которую должен знать каждый, кто работает с консолью.

#linux #networking #ss #iproute2 #troubleshooting #admin_future
2👍2
🪟 Windows: Кто съел мою память? (PowerShell)

Коллеги, ситуация: сервер начал подтормаживать, а лезть в тяжелый Диспетчер задач через RDP лень или канал слишком узкий. Нам нужно быстро понять, какой процесс «отъел» всю оперативную память, и желательно в мегабайтах, а не в непонятных байтах.

PowerShell позволяет сделать это одной строкой, отсортировав процессы по реальному потреблению (WorkingSet).

Скрипт для поиска виновных:


# Топ-10 процессов по потреблению памяти в Мб
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10 Name, @{Name='RAM_MB'; Expression={[math]::round($_.WorkingSet / 1mb, 2)}} | Format-Table -AutoSize


Зачем это нужно:
Для оперативного реагирования. Ты сразу видишь, что это: утечка в браузере, разросшаяся база или «зависшее» приложение. Зная имя процесса, его можно тут же перезапустить или изучить подробнее, не тратя время на графику.

#windows #powershell #performance #monitoring #sysadmin #admin_future
2🔥2
🚀 Skills: Твоя вторая память — Зачем админу личная Wiki

Понедельник — отличное время, чтобы навести порядок в голове. Самая большая ошибка админа — полагаться на свою память. Фраза «я это точно запомню» — самая большая ложь, которую мы себе говорим. Через полгода ты не вспомнишь, какой «костыль» применил для настройки того странного принтера.

Почему личная база знаний (Wiki) — это твой главный скилл:
1. Скорость решения: Ты не гуглишь проблему заново, а открываешь свою заметку, где уже есть готовый конфиг.
2. Спокойный отпуск: Если ты передаешь дела коллеге, тебе достаточно скинуть ссылку на документацию, а не висеть на телефоне.
3. Структура: Описывая решение в Markdown, ты сам лучше понимаешь, как оно работает.

Что использовать:
1. Obsidian или Logseq — для тех, кто любит локальные файлы и связи между заметками.
2. Notion или Wiki.js — если нужна командная работа и красивый интерфейс.
3. Обычные .md файлы в Git-репозитории — путь настоящего минималиста.


Вывод: Админ без документации — это просто пожарный. Админ с базой знаний — это инженер. Начни записывать свои решения сегодня, и через месяц ты скажешь себе спасибо.

#skills #documentation #productivity #knowledgebase #markdown #admin_future
👍3💯2
🔍 Linux: grep — Видеть больше, чем одну строку

Привет, коллеги! Вторник — день глубокого погружения в логи. Часто бывает так: ты находишь ошибку через grep, но одна строка ничего не говорит о причинах падения. Тебе нужно знать, что происходило за секунду до этого или какая ошибка вылетела следом.

Вместо того чтобы открывать файл в vim и мотать тысячи строк, используй флаги контекста. Это сэкономит тебе уйму времени и нервов.

Практика:


# Показать строку с ошибкой и 5 строк ПОСЛЕ нее (After)
grep -A 5 "crit" /var/log/syslog

# Показать 3 строки ДО ошибки (Before) — полезно, чтобы увидеть причину
grep -B 3 "connection refused" /var/log/nginx/error.log

# Показать контекст: 2 строки до и 2 строки после (Context)
grep -C 2 "panic" /var/log/dmesg


Зачем это нужно:
Для быстрого расследования. Ты сразу видишь последовательность событий. Например, сначала отвалилась база (Before), а потом упало приложение (Match). Это база эффективного траблшутинга в консоли.


#linux #grep #logs #troubleshooting #admin_future
👍2
📂 Windows: Ищем «тяжелые» папки через PowerShell

Коллеги, ситуация: на диске C: осталось 500 Мб, сервер задыхается, а стандартный проводник Windows считает размер папок целую вечность. Нам нужно мгновенно найти виновника, который забил место логами или временными файлами.

PowerShell справляется с этим гораздо быстрее, если не просить его пересчитывать каждый мелкий файл по отдельности в визуальном режиме


Скрипт для поиска топ-5 самых тяжелых папок (копируй и запускай):


# Считаем размер папок в корне диска C: и сортируем по убыванию
Get-ChildItem -Path "C:\" -Directory | ForEach-Object {
$Size = (Get-ChildItem -Path $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum
[PSCustomObject]@{
FolderName = $_.Name
Size_GB = [math]::round($Size / 1GB, 2)
}
} | Sort-Object Size_GB -Descending | Select-Object -First 5 | Format-Table -AutoSize


Зачем это нужно:
Для оперативной очистки. Обычно виноваты либо логи IIS, либо папки Temp, либо чьи-то забытые бэкапы прямо на системном диске. Пять секунд работы скрипта — и ты знаешь, куда бить.


#windows #powershell #storage #cleanup #sysadmin #admin_future
🏷️ Skills: Искусство именования — Чтобы не гадать, что это за сервер

Поговорим о именовании серверов. Называть машины srv1, test2 или, что еще хуже, именами богов из мифологии — это путь к катастрофе, когда в твоем парке становится больше 10 узлов. В 2026 году твоя инфраструктура должна быть «картой», а не ребусом.

Хорошее имя сервера должно отвечать на три вопроса: Что это? Где это? Для чего это?

Правильная схема (Роль-Локация-Окружение-Индекс):
Пример: db-msk-prod-01

1. db — роль (database). Сразу ясно, что внутри.
2. msk — локация (Moscow). Понятно, в каком ДЦ искать.
3. prod — окружение (production/dev/test). Не перепутаешь, где можно проводить тесты.
4. 01 — порядковый номер. Для масштабирования.


Зачем это нужно:
Для автоматизации и твоего спокойствия. Если тебе прилетает алерт от zabbix-prod-02, ты сразу понимаешь критичность и где физически находится узел. Это упрощает написание скриптов (Ansible/PowerShell), где ты можешь обращаться к группам машин по маске имени.


Вывод: Порядок в именах — это порядок в голове и в коде.

#skills #infrastructure #naming #bestpractices #management #admin_future
🔥2
🚀 VPN больше не нужен: Ускоряем Telegram через TG Unblock

Пока мы с вами обсуждали серверные стойки и бэкапы, на Хабре выкатили потенциальный убийцу VPN-сервисов для одного конкретного мессенджера. Если ваш Telegram в последнее время напоминает старый модем — сообщения висят в статусе отправки, а картинки грузятся годами — этот пост для вас.

Разработчик представил инструмент под названием TG Unblock. Это легкое решение на Rust, которое обходит замедление трафика, не требуя сторонних серверов или платных подписок.


Провайдеры используют системы DPI для распознавания протокола MTProto (на котором работает Telegram) и его замедления. Традиционные средства вроде GoodbyeDPI пытаются маскировать пакеты, но в 2026 году этого часто недостаточно из-за блокировок по IP.

TG Unblock идет другим путем:
1. Приложение поднимает локальный SOCKS5-прокси на вашем компьютере.
2. Весь трафик мессенджера упаковывается в WebSocket-соединение.
3. Провайдер видит это как обычный HTTPS-трафик к домену web.telegram.org (веб-версии мессенджера), которую обычно не трогают, чтобы не ломать работу браузерных версий.


Основные фишки инструмента

* Rust внутри: Приложение весит всего 6 мегабайт и почти не ест ресурсы системы.
* Автоматизация: Программа сама определяет нужный дата-центр Telegram по IP-адресу назначения и направляет трафик на правильный эндпоинт.
* DNS-защита: При запуске софт меняет DNS на 1.1.1.1 (Cloudflare), чтобы обойти блокировки на уровне имен.
* Чистый Open Source: Весь исходный код доступен на GitHub, можно проверить лично, что ваши ключи никуда не улетают.


Пока инструмент доступен только для Windows, но автор обещает версии для Linux и macOS в ближайшее время.

1. Скачиваешь бинарник из раздела Releases на GitHub проекта tglock.
2. Запускаешь приложение. Оно само пропишет нужные настройки в системе.
3. В настройках Telegram (Продвинутые настройки -> Тип соединения) убеждаешься, что выбран пункт Использовать системные настройки прокси или вручную указываешь SOCKS5 (localhost и порт, который выдаст программа).


Это отличный способ разгрузить корпоративный VPN. Если ваши сотрудники используют Telegram для работы, можно пустить его через такой локальный прокси, сэкономив трафик на основном шлюзе и избавив людей от постоянных обрывов звонков.

Технология WebSocket-транспорта официально поддерживается Telegram, так что это не костыль, а грамотное использование штатных возможностей мессенджера для обхода искусственных ограничений.

В 2026 году побеждает не тот, у кого самый мощный сервер, а тот, кто умеет маскировать трафик под котиков и обычный веб-серфинг.

habr
github

#telegram #unblock #rust #proxy #sysadmin #networking #admin_future
🔥3