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
🏛️ Пятничный лонгрид: Искусство «ленивого» админа или почему твоя документация — это код

Все мы знаем классику: админ, который работает 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: "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
⚡ PowerShell: Работаем с API как профи через RestMethod 🌐

В 2026 году админ постоянно взаимодействует с API: Jira, GitLab, мониторинг или облака. Многие до сих пор мучаются с curl в Windows, хотя в PowerShell есть нативный и гораздо более мощный инструмент.

Команда дня:

$params = @{
Uri = "https://api.your-service.com/v1/task"
Method = "Post"
Headers = @{ "Authorization" = "Bearer $Token" }
ContentType = "application/json"
Body = @{ title = "Fix Server"; priority = 1 } | ConvertTo-Json
}

$response = Invoke-RestMethod @params
$response.id # Работаем с результатом сразу как с объектом!

Почему это круто:

1. Splatting: Передача параметров через хэш-таблицу (@params) делает код чистым и читаемым.

2. Auto-Object: В отличие от Invoke-WebRequest, этот командлет сразу конвертирует JSON в объект. Тебе не нужно парсить текст!

3. Native Auth: Поддерживает современные протоколы авторизации из коробки.

#windows #powershell #api #automation #sysadmin #rest #devops 🚀
🔥1
🪟 Windows: Операторы && и || в PowerShell 7 — наконец-то как в Bash! ⛓️

Если ты перешел на PowerShell 7+ (а в 2026-м это стандарт), перестань писать громоздкие конструкции if ($?) { ... }. Теперь у нас есть Pipeline Chain Operators, которые работают так же, как в Linux.

Было (старый стиль):

Stop-Service "Spooler"
if ($?) { Start-Service "Spooler" }

Стало (Admin Future стиль):

# Выполнится ТОЛЬКО если первая команда успешна
Stop-Service "Spooler" && Start-Service "Spooler"

# Выполнится, если первая команда УПАЛА (обработка ошибок)
Connect-MgGraph || Write-Warning "Не удалось подключиться к облаку!"

Почему это важно: Скрипты становятся читаемыми в одну строку. Это идеально для быстрых фиксов и админских задач "на лету". ⚡

#windows #powershell #scripting #devops #automation #sysadmin #pwsh
👍1🔥1👏1
📦 Бэкапы: «Бэкап Шредингера» и как проверить Veeam через PowerShell 🐈

Главное правило пятницы 13-го: если ты не тестировал восстановление из бэкапа, значит, у тебя нет бэкапа.
Но проверять всё руками — никаких выходных не хватит.

Если ты используешь Veeam Backup & Replication, ты можешь быстро вытащить статус всех последних сессий прямо из консоли, чтобы убедиться, что этой ночью всё прошло без ошибок.

Скрипт быстрого аудита:
Запусти это в PowerShell на сервере Veeam, чтобы получить красные флаги, если они есть:

Add-PSSnapin VeeamPSSnapIn -ErrorAction SilentlyContinue
Get-VBRBackupSession | Where-Object { $_.CreationTime -ge (Get-Date).AddDays(-1) } |
Select-Object JobName, Result, CreationTime, EndTime |
Sort-Object Result |
Format-Table -AutoSize

Что это дает: Ты за одну секунду видишь таблицу всех джобов за последние 24 часа.
Если в колонке Result везде Success — смело закрывай ноут и иди пить кофе. ☕

#veeam #backup #disaster_recovery #powershell #automation #sysadmin #admin_future
🔥3👍1👏1
🪟 Windows: Ищем «тяжелые» файлы через PowerShell за секунду 📂

Когда на файловом сервере внезапно кончается место, стандартный поиск Windows Explorer — это боль. Пока он проиндексирует миллион файлов, пройдет вечность.
PowerShell делает это быстрее и сразу выдает результат в удобном виде.


Скрипт для поиска ТОП-10 самых больших файлов:



Get-ChildItem -Path "C:\Data" -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

Ты можешь запустить это удаленно через Invoke-Command сразу на 10 серверах и узнать, где завалялся забытый ISO-образ или гигантский лог Exchange.

#windows #powershell #sysadmin #diskspace #automation #server #maintenance
Иллюзия вечного стресса, или как вести 5 проектов 🧘‍♂️

В IT-тусовке есть стереотип: если у тебя больше одной работы, то ты спишь по три часа в обнимку с сервером, питаешься энергетиками и дергаешься от каждого пуша в телефоне.

Давайте разрушим этот миф. Пять работ — это вообще не про стресс. Это про грамотную архитектуру и автоматизацию. Если твоя инфраструктура заставляет тебя потеть и седеть — значит, ты просто плохо её настроил.

Как выглядит работа здорового человека:

1. Ты потратил месяц, чтобы выстроить всё через IaC (Ansible/Terraform).
2. Ты настроил алерты так, чтобы они срабатывали до того, как всё рухнет.
3. Ты научил пользователей заводить тикеты, а не писать в личку «тут всё сломалось».


В идеале, твой рабочий день — это выйти на балкон, спокойно выкурить Chapman Compact, посмотреть на зеленые дашборды в Grafana и пойти заниматься своими делами. Сисадмин работает не когда он стучит по клавиатуре, а когда система работает без него.

#жиза #sysadmin #worklifebalance #automation #admin_future
🚀 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
🪟 Windows Server: Гроза «зависших» сессий — PowerShell-скрипт для очистки RDP 🧹

Знакомая ситуация: ты пытаешься зайти на сервер по RDP, а он тебе: «Превышено максимальное число подключений». Кто-то из коллег просто закрыл крестиком окно вместо Log off, и сессия висит «призраком», занимая слот.

Не нужно гадать, кто это. Выбиваем бездельников одной командой.

Сниппет для поиска и завершения зависших сессий:


# Показать все сессии, которые висят в статусе "Disconnected" более 2 часов
$sessions = qwinsta /server:localhost | Append-Output | Select-String "Disc"
foreach ($sess in $sessions) {
$sessId = ($sess -split '\s+')[2]
rwinsta $sessId /server:localhost
Write-Host "Сессия $sessId принудительно завершена." -ForegroundColor Yellow
}



Админский совет: Настрой этот скрипт в планировщике задач на контроллерах домена и терминальных серверах. Пусть система сама чистит за теми, кто забывает разлогиниться.

#windows #powershell #rdp #sysadmin #automation #server #admin_future
🪟 Windows: Понедельник — день «Locked Out». Спасаем пользователей массово 🔓

Утро понедельника у хелпдеска всегда одинаковое: "Я вводил пароль правильно, но оно не пускает!". После выходных пальцы пользователей забывают моторику, Caps Lock нажимается случайно, и половина офиса сидит с заблокированными учетками.

Не надо кликать мышкой в ADUC каждого страдальца. PowerShell спасет твой утренний кофе.


# Найти всех, кто заблокировался, и показать время блокировки
Search-ADAccount -LockedOut | Select-Object Name, SamAccountName, LockedOutTime | Format-Table -AutoSize

# Если ты чувствуешь себя великодушным — разблокировать ВСЕХ одной командой
Search-ADAccount -LockedOut | Unlock-ADAccount



Только убедись перед массовой разблокировкой, что это реальные пользователи, а не брутфорс-атака на RDP!


#windows #powershell #activedirectory #monday #automation #sysadmin #admin_future
🪟 Windows: Ищем «протухающие» сертификаты через PowerShell

Забытый SSL-сертификат на внутреннем веб-сервере или в хранилище `LocalMachine` — это классический повод для экстренного вызова админа из отпуска. Чтобы этого не случилось, давай автоматизируем проверку.

Технический разбор:
В Windows есть встроенный провайдер `Cert:`, который позволяет работать с сертификатами как с обычными файлами.


Сниппет для поиска проблем:


# Найти все сертификаты в личном хранилище компьютера,
# срок действия которых истекает в ближайшие 30 дней
Get-ChildItem -Path Cert:\LocalMachine\My |
Where-Object { $_.NotAfter -lt (Get-Date).AddDays(30) -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, NotAfter, Thumbprint |
Format-Table -AutoSize



Зачем это нужно: Закинь этот скрипт в ежедневный Task Scheduler с отправкой письма на почту, и ты никогда не пропустишь момент, когда пора обновлять сертификат на твоем AD FS или IIS.


#windows #powershell #security #pki #certificates #automation #admin_future
🪟 Windows: WinGet Configuration — настраиваем рабочее место через YAML 📝

В 2026 году ручная установка софта в Windows — это моветон. Microsoft активно развивает WinGet Configuration (на базе Desired State Configuration — DSC). Теперь ты можешь описать всё состояние системы в одном YAML-файле и применить его на новом сервере или ноутбуке сотрудника.
Техническая суть:
Ты описываешь не только список программ, но и настройки системы, реестра и функций Windows.

Пример конфигурационного файла (config.yaml):

# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
resources:
- resource: Microsoft.WinGet.DSC/WinGetPackage
directives:
description: Install VS Code
settings:
id: Microsoft.VisualStudioCode
source: winget
- resource: Microsoft.Windows.Developer/DeveloperMode
settings:
Enabled: true
configurationVersion: 0.2

Команда для применения:

# Проверить файл и применить настройки
winget configure config.yaml

Зачем это нужно: Это «Terraform для локальной Windows».
Один файл — и через 5 минут у тебя настроенная машина со всеми админскими утилитами.

#windows #automation #winget #dsc #devops #sysadmin #admin_future
🔥3
🪟 Windows: Разгоняем PowerShell через параллельную обработку 🏎️

Утро пятницы — время для регулярных отчетов. Если тебе нужно опросить 100+ серверов через `Get-Service` или проверить наличие файла на 500 рабочих станциях, обычный цикл `foreach` будет работать вечно. В PowerShell 7+ есть киллер-фича: Parallel Processing.

Техническая суть:
Параметр `-Parallel` в командлете `ForEach-Object` позволяет запускать скрипт-блоки одновременно в разных потоках. Лимит потоков можно задать через `-ThrottleLimit`.


Пример быстрого чека сервиса на списке хостов:


$servers = Get-ADComputer -Filter 'OperatingSystem -like "*Server*"' | Select-Object -ExpandProperty Name

# Опрашиваем по 20 серверов одновременно
$servers | ForEach-Object -Parallel {
Get-Service -Name "Spooler" -ComputerName $_ | Select-Object Machinename, Status
} -ThrottleLimit 20



Результат: Задача, которая раньше занимала 10 минут, теперь выполняется за 30 секунд. Твой утренний кофе даже не успеет остыть.

#windows #powershell #automation #sysadmin #efficiency #admin_future
❤2
🪟 Windows: SecretManagement — Смерть паролей в открытом коде

Коллеги, на дворе 2026 год. Если при проверке ваших PowerShell-скриптов безопасник находит переменную `$password = "12345"`, он имеет полное право заблокировать вашу учетку до конца квартала. Скрыть пароль в base64 — это не защита, это костыль из прошлого десятилетия.

Техническая суть:
Используем нативный модуль Microsoft.PowerShell.SecretManagement. Это абстрактный слой, который позволяет скриптам запрашивать секреты, не зная, где они лежат: в локальном зашифрованном Vault, в KeePassXC или в корпоративном HashiCorp Vault.

Под капотом: Модуль отделяет логику скрипта от реализации хранилища. Скрипт просит «дай мне пароль от сервиса X», а SecretManagement сам идет в зарегистрированное расширение (Extension Vault) и достает его. В памяти скрипта секрет живет только в виде объекта `SecureString`.

Практика:

Настраиваем локальное защищенное хранилище и используем его в автоматизации:


# 1. Устанавливаем необходимые модули
Install-Module Microsoft.PowerShell.SecretManagement, Microsoft.PowerShell.SecretStore -Force

# 2. Регистрируем локальный защищенный сейф (требует мастер-пароль или привязку к сессии)
Register-SecretVault -Name LocalSafe -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault

# 3. Сохраняем секрет один раз (интерактивно)
Set-Secret -Name "Service_DB_Prod" -Secret "MySuperSecurePassword2026!"

# 4. В скрипте теперь только чистая логика:
$dbSecret = Get-Secret -Name "Service_DB_Prod" -AsPlainText # Используйте plain text только для передачи в API!
Invoke-Sqlcmd -ServerInstance "DB-SRV-01" -Password $dbSecret -Query "SELECT 1"



Зачем это нужно:
Ваши `.ps1` файлы теперь абсолютно чисты. Их можно спокойно пушить в Git, передавать коллегам и не бояться, что при увольнении придется ротировать сотню паролей, которые вы «где-то там» прописали.


#windows #powershell #security #automation #secretmanagement #admin_future
👍1
🪟 Windows: CLI-первенство. Управляем сервером без «тяжелых» окон

Коллеги, в 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
🧹 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
🚀 Skills: Платформенный инженер — Эволюция сисадмина

Мир меняется. В 2026 году границы между админом, DevOps и SRE окончательно размылись, породив концепцию Platform Engineering. Если ты до сих пор вручную создаешь виртуалки по заявкам в Jira, ты рискуешь стать «узким местом» для всей компании.

Кто такой платформенный инженер:
Это админ, который не делает работу за других, а создает инструменты (Self-Service), чтобы другие могли сделать её сами.


Как сменить фокус:
1. От заявок к API: Вместо «напиши мне скрипт для бэкапа», дай разработчику кнопку в интерфейсе или CLI-утилиту, которая сделает это по шаблону.
2. Внутренний продукт: Твои «пользователи» — это другие айтишники в компании. Твоя задача — сделать их жизнь проще, создав надежную платформу (IDP — Internal Developer Platform).
3. Стандартизация: Вместо зоопарка из разных версий ОС и БД, создай «золотые образы» и шаблоны конфигураций, которые обновляются автоматически.


Зачем это нужно:
Чтобы не сгореть на работе. Платформенный подход позволяет одному человеку управлять инфраструктурой для сотен разработчиков без хаоса и ночных звонков. Это путь от «тушителя пожаров» к архитектору систем.


#skills #platformengineering #devops #career #automation #admin_future
🪟 Windows: Обновляем весь зоопарк софта одной командой через WinGet

Раньше для централизованного обновления стороннего софта (браузеры, архиваторы, мессенджеры) на парке машин мы использовали тяжеловесные решения вроде SCCM, сторонние патч-менеджеры или писали километровые скрипты-обертки.

Сейчас все стало гораздо элегантнее. Встроенный пакетный менеджер WinGet давно оброс мускулами и отлично справляется с этой задачей через консоль.

Скрипт для PowerShell (запускать от администратора):

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements

Как это работает:
Команда проверяет абсолютно все установленные приложения, сравнивает их версии с официальными репозиториями и в тихом режиме (без окон установки) накатывает свежие патчи, автоматически соглашаясь с лицензионными условиями.


Уязвимости нулевого дня в браузерах и PDF-читалках — это любимый вектор атак шифровальщиков. Повесьте этот скрипт в Планировщик задач на компьютерах пользователей, например, на обеденное время среды. Система сама закроет 90% дыр в стороннем софте без вашего ручного вмешательства.

#windows #powershell #winget #automation #sysadmin #admin_future
❤2
🐍 Python 3.15 вышел: UTF-8 по умолчанию может сломать ваши скрипты на Windows

Коллеги, важный релиз для всех, кто пишет скрипты автоматизации, интеграции и парсеры системных логов на Python.

📌 ФАКТЫ
Стабильный релиз: 9 октября представлена финальная ветка Python 3.15.

UTF-8 Mode по умолчанию (PEP 686): встроенная функция open() без явного параметра encoding теперь всегда открывает файлы в кодировке UTF-8, игнорируя региональные параметры операционной системы (locale.getencoding()).

Ленивые импорты (PEP 810): синтаксис вида lazy import json — модуль парсится и загружается в память только при первом фактическом вызове атрибута (включается строго явно флагом или директивой). Существенно срезает время холодного старта CLI-утилит.

Экспериментальный JIT: прирост производительности +7–8% на архитектуре x86_64 под Linux.

Сэмплирующий профилировщик Tachyon: низкоуровневый профилировщик без остановки рантайма. Умеет аттачиться к уже запущенному production-процессу и строить flame graph узких мест.

Новые базовые типы: добавлены нативные frozendict (неизменяемый словарь) и sentinel (удобные уникальные маркеры-заглушки вместо object()).

⚠️ ГДЕ ВЫСТРЕЛИТ НА WINDOWS
Исторически на русскоязычных Windows-серверах и рабочих станциях open() по умолчанию поднимал кодировку CP1251 (ANSI) для файлов и CP866 (OEM) для консольных утилит.

После обновления интерпретатора до 3.15:

Выгрузки отчетов, реестров и прайсов из 1С:Предприятия;

Экспортированные CSV-таблицы из классического Excel;

Текстовые журналы старых служб, конфиги и .bat/.cmd скрипты в кодировке ANSI

при попытке прочитать их «по старинке» (open('file.txt')) мгновенно уронят процесс с ошибкой UnicodeDecodeError: 'utf-8' codec can't decode byte... либо тихо запишут кракозябры при сохранении.

🛠 КАК ПРАВИЛЬНО ОБРАБАТЫВАТЬ КОДИРОВКИ
1. Явная фиксация кодировки в Python
Python
# Чтение локальных Windows-выгрузок (1С, Excel, старые сервисы)
with open('export_1c.csv', mode='r', encoding='cp1251') as f:
data = f.read()

# Корректный перехват stdout системных CLI-команд Windows (ipconfig, ping, netstat)
import subprocess

res = subprocess.run(
['ipconfig', '/all'],
capture_output=True,
encoding='cp866',
check=True
)
print(res.stdout)

2. Временный откат поведения через переменные окружения
PowerShell
# Принудительное отключение UTF-8 режима для конкретного сеанса PowerShell
$env:PYTHONUTF8 = '0'
python automation_script.py

3. Экспресс-аудит репозитория скриптов перед обновлением Python
Bash
# Ищем потенциально опасные вызовы open() без аргумента encoding в проекте
grep -rnE "open\([^)]*\)" --include="*.py" . | grep -v "encoding="

💡 В ЧЁМ СУТЬ
Явный параметр

encoding=
в каждом вызове

open()
— базовый стандарт инженерной гигиены, делающий скрипт полностью переносимым между Windows Server, Debian/Ubuntu и любыми версиями рантайма.

Перед тем как обновлять глобальный Python на серверах автоматизации или в контейнерах сборщиков, прогоните аудит кода регуляркой выше.

#skills #python #automation #windows #1c #linux #devops #sysadmin #admin_future
🤖 Цифровое крепостное право: Claude Code нанял 161 субагента Codex, чтобы не рендерить видео самому

Коллеги, зарисовка из мира мультиагентных систем, которая идеально описывает будущее автоматизации.

📌 ЧТО ПРОИЗОШЛО
Пользователь дал Claude Code тривиальную задачу: покадрово воссоздать короткий 63-секундный видеоролик.

Дальше агент повел себя как опытный тимлид:

Провел разведку окружения: обнаружил активную подписку на Codex с доступным API генерации изображений.

Делегировал рутину: решил не мучаться с генерацией сотен кадров в одиночку, а нарезать ролик на план из ~700 фреймов.

Организовал воркфорс: поднял 161 параллельную сессию Codex, распределив между ними таймлайны и промпты.

Занял руководящую должность: пока сетка OpenAI в поте лица генерировала картинки, Claude Code мониторил потребление RAM, отслеживал отвалившиеся сессии, перезапускал упавшие таски и в финале собрал готовый видеоряд воедино.

#ai #claude #openai #codex #automation #agents #sysadmin #admin_future
🔥1