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

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


Админ - @maksimshap
Download Telegram
😱 The Scream Test: Когда документации нет

Как узнать, нужен ли этот старый сервер srv-app-legacy-02, если документации нет, а спросить не у кого? Применяем Scream Test (Тест на крик).

Алгоритм:
1. Выключаем сетевой интерфейс или службу.
2. Ждем.
3. Если никто не позвонил и не закричал в течение недели — сервер можно удалять.

* Если закричали — включаем обратно и записываем, кто и зачем его использует.

⚠️ Техника безопасности:
* Никогда не делайте это в пятницу.
* Никогда не удаляйте данные сразу (делайте бэкап/снапшот).
* Делайте это в "рабочие часы", когда вы на месте.

Жестоко? Да. Эффективно? Абсолютно.

#adminlife #humor #methodology #legacy #cleanup
👍2
🧹 PowerShell: Чистим старые профили пользователей

Знакомая ситуация: на терминальном сервере или ПК общего пользования за год накопилось 50 профилей уволенных или случайных людей. Диск C: кричит о помощи.

Не удаляйте папки вручную в C:\Users! Это сломает реестр. Делаем через WMI.

Скрипт (удалить профили старше 60 дней):

$Limit = (Get-Date).AddDays(-60)

# Получаем профили, которые не использовались более 60 дней
$Profiles = Get-CimInstance Win32_UserProfile |
Where-Object { $_.LastUseTime -lt $Limit -and $_.Special -eq $false }

foreach ($Profile in $Profiles) {
Write-Host "🗑 Удаляю профиль: $($Profile.LocalPath)" -ForegroundColor Yellow
$Profile | Remove-CimInstance
}

⚠️ Важно: Скрипт не тронет системные профили (Special). Но перед запуском убедитесь, что в списке нет вашего босса, который просто давно не заходил на этот сервер.

#windows #powershell #cleanup #sysadmin #automation
🧹 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
👍3
🧹 Linux: ncdu — Генеральная уборка перед Новым годом

В новый год — с чистыми дисками! Обычный du -h выдает простыню текста. Искать, куда делось место, неудобно.

Используйте ncdu (NCurses Disk Usage). Это псевдографический интерфейс, по которому можно ходить стрелочками.

Почему это мастхэв:
1. Скорость: Моментально сканирует диск.
2. Навигация: Вы видите папку /var/log (5 ГБ), заходите внутрь (Enter) и видите, что виноват journal.
3. Удаление: Можно нажать d прямо на файле, и он удалится (с подтверждением).

Установка и запуск:

Bash

sudo apt install ncdu
sudo ncdu /

Выделите 10 минут, почистите логи и кэши apt. Сервер скажет спасибо.

#linux #tools #ncdu #cleanup #storage #maintenance
❤1👏1
🧹 Linux: Укрощаем journald. Как освободить место без удаления файлов?

Если /var/log забит, но logrotate настроен правильно, скорее всего, виноват systemd-journald. Он хранит бинарные логи, которые могут копиться годами и занимать гигабайты. Просто удалять файлы в /var/log/journal/ опасно — можно повредить базу.

Используйте встроенные механизмы очистки (vacuum).

1. Проверяем, сколько места занято:


journalctl --disk-usage
# Вывод: Archived and active journals take up 4.2G in the file system.

2. Освобождаем место (безопасно): Утилита сама удалит самые старые записи, чтобы вписаться в лимит.


# Оставить только последние 500 МБ
sudo journalctl --vacuum-size=500M

# Или оставить логи только за последние 10 дней
sudo journalctl --vacuum-time=10d

3. Как сделать это автоматическим: В файле /etc/systemd/journald.conf раскомментируйте и настройте параметр: SystemMaxUse=500M Теперь systemd сам будет следить за диетой.

#linux #systemd #journalctl #cleanup #maintenance #storage
🗑 Linux: Находим и удаляем дубликаты файлов ( `fdupes` )

После года работы и бэкапов на диске скапливаются гигабайты одинаковых файлов с разными именами. Руками их искать невозможно. md5sum для каждого файла — долго.

Используйте fdupes . Она сравнивает файлы сначала по размеру, потом по подписи MD5, и только потом побайтово. Это быстро и безопасно.

1. Просто найти дубликаты (рекурсивно):


fdupes -r /home/user/Downloads

2. Найти и сразу предложить удалить: Запустит интерактивный режим, где спросит, какую копию оставить.


fdupes -rd /home/user/Downloads

3. Автоматически удалить дубликаты (без вопросов): Оставит только первый найденный файл, остальные — в шредер.


fdupes -rdN /home/user/Downloads

Идеально для чистки папок с фото и загрузками.

#linux #storage #cleanup #fdupes #maintenance #cli
👍2
🪟 CMD: Охота на зависшие RDP-сессии

Перед праздниками полезно проверить терминальные серверы. Часто бывает, что пользователи нажали "крестик", но сессия осталась висеть, поедая оперативную память и блокируя файлы. Диспетчер задач открывать долго.

1. Смотрим, кто в системе:


quser

Вывод покажет: USERNAME, ID, STATE (Active/Disc). Ищите тех, у кого статус Disc (Disconnected) висит уже несколько дней.

2. Сбрасываем зависшую сессию: Запоминаем ID из прошлой команды (например, 7).


logoff 7

3. Удаленно (если лень заходить):


quser /server:SRV-TERM-01
logoff 7 /server:SRV-TERM-01

Пять минут на чистку — и серверу станет легче дышать на каникулах.

#windows #rdp #cmd #maintenance #adminlife #cleanup
👮‍♂️ PowerShell: Ревизия локальных админов

За время праздников (или в суете перед ними) кто-то мог выдать временные права "Локального админа" пользователю, чтобы поставить софт, и... благополучно забыть забрать. Это классическая дыра в безопасности.

Проверяем состав элитного клуба на сервере одной командой.

Скрипт:


Get-LocalGroupMember -Group "Administrators" | Select-Object Name, PrincipalSource, ObjectClass

На что смотреть: В списке должны быть только:

👑 Administrator (Встроенный)

🏢 Domain Admins (Группа домена)

🤖 Легитимные сервисные учетки.

Если видите DESKTOP\Ivan (обычный юзер) — удаляйте немедленно:

Remove-LocalGroupMember -Group "Administrators" -Member "Ivan"

#windows #powershell #security #audit #localadmin #cleanup
🧹 ncdu: Уборка мусора с комфортом

Вы запускаете df -h и видите, что диск / занят на 95%. Что делать? Запускать du -sh /* и ждать полчаса? Это метод каменного века.

Используйте ncdu (NCurses Disk Usage).

Почему это топ:

1. Скорость: Она сканирует диск молниеносно.

2. Интерактивность: Вы ходите стрелочками по папкам, как в файловом менеджере. Сразу видно: "Ага, это логи Docker занимают 20 ГБ".

3. Удаление: Нашли мусор? Нажали d — подтвердили — удалили. Не нужно копировать пути и писать rm .

Установка:

apt install ncdu # Debian/Ubuntu
yum install ncdu # CentOS

Лайфхак: Чтобы не сканировать примонтированные сетевые шары (и не положить сеть), используйте флаг -x :

ncdu -x /

#linux #storage #ncdu #cleanup #tools #cli #sysadmin
👻 AD: Как найти действительно неактивных пользователей?

Вы хотите почистить домен от уволенных сотрудников. Вы смотрите свойство LastLogon. Но оно показывает старую дату. Вы удаляете юзера, а через час звонит директор: "Почему меня не пускает?".

Проблема: Атрибут LastLogon не реплицируется. Он обновляется только на том контроллере домена, через который прошел вход. Решение: Используйте LastLogonDate (это конвертированный LastLogonTimeStamp, который реплицируется, но с задержкой 9-14 дней).

PowerShell скрипт для поиска "мертвых душ" (> 90 дней):


$Date = (Get-Date).AddDays(-90)

Get-ADUser -Filter {LastLogonDate -lt $Date -and Enabled -eq $true} -Properties LastLogonDate |
Select-Object Name, LastLogonDate, SamAccountName |
Sort-Object LastLogonDate |
Format-Table -AutoSize

Используйте этот список для проверки. Если дата входа была 3 месяца назад — смело отключайте (Disable), а удаляйте еще через месяц.

#windows #powershell #activedirectory #cleanup #audit #sysadmin
✍2
⚡ 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 🧹
✍1👍1🔥1👏1
🚀 DevOps: Очистка старых Docker-образов по расписанию 🧹

Если твой сервер внезапно перестал отвечать, проверь место на диске. Часто причиной становятся гигабайты «висячих» (dangling) слоев и старых образов Docker, которые копятся после каждого деплоя. В 2026-м ручная чистка — это моветон.

Техническое решение:
Используем встроенную систему очистки Docker с фильтрами, чтобы не снести лишнее.


Команда для тотальной, но безопасной чистки:


# Удалить все неиспользуемые контейнеры, сети и образы (dangling)
docker system prune -f

# Удалить вообще все образы, которые не используются ни одним запущенным контейнером
docker image prune -a --force --filter "until=168h"

Фильтр until=168h удалит только те образы, которые старше недели, оставив свежие билды для быстрого отката (rollback).

#docker #devops #optimization #linux #cleanup #sysadmin #automation #admin_future
🐧 Linux: duf — Дисковая статистика здорового человека

Обычный `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: Ищем «тяжелые» папки через 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
🧹 Windows: Автоматическая чистка старых файлов через PowerShell

Коллеги, признавайтесь: у кого на сервере есть папка Temp или Backup, которая незаметно разрастается до терабайта, пока однажды диск С: не загорается красным? В 2026-м админ не должен удалять мусор руками. Это работа для простого скрипта, который будет делать уборку за тебя каждую ночь.

Мы напишем скрипт, который находит файлы старше 30 дней в конкретной папке и удаляет их, не трогая всё остальное.


Скрипт для планировщика задач:


# Путь к папке, где нужно прибраться
$Path = "C:\Backups\Daily"
# Срок хранения в днях
$Days = 30
$TargetDate = (Get-Date).AddDays(-$Days)

# Ищем файлы и удаляем их
Get-ChildItem -Path $Path -File -Recurse |
Where-Object { $_.LastWriteTime -lt $TargetDate } |
Remove-Item -Force -Verbose


Зачем это нужно:
Для спокойного сна. Настрой этот скрипт в Task Scheduler (Планировщике задач) на запуск раз в сутки. Больше тебе не придется судорожно удалять старые архивы, когда место на сервере внезапно закончится в разгар рабочего дня.


#windows #powershell #cleanup #automation #sysadmin #admin_future
🔥2
📦 Linux: Наводим порядок в Docker — удаляем «висячие» ресурсы

Коллеги, признавайтесь: как часто вы заходите на сервер и обнаруживаете, что Docker сожрал всё место образами годичной давности и остановленными контейнерами, которые «может еще пригодятся»? В 2026-м контейнеризация повсюду, и мусор в /var/lib/docker — это главная причина алертов по дискам.

Не нужно удалять всё по отдельности. Есть одна команда-швейцарский нож, которая вычистит всё лишнее, не сломав работающий прод.


Магическая команда для терминала:


# Удаляем неиспользуемые контейнеры, сети и "висячие" (dangling) образы
docker system prune -f

# А если нужно вычистить ВООБЩЕ всё неиспользуемое (включая старые тома)
docker system prune -a --volumes -f


Чтобы не плодить сущности. Каждый docker build оставляет после себя слои, а каждый docker stop — мертвое тело контейнера. Регулярный запуск этой команды (лучше в cron раз в неделю) экономит десятки гигабайт и избавляет от путаницы при просмотре списка образов.


Вывод: Чистый Docker — залог быстрого деплоя. Не превращайте свой сервер в кладбище контейнеров.

#linux #docker #devops #cleanup #sysadmin #admin_future