AI-Ассистент Сисадмина: Пишем «архитекторские» промпты, которые генерируют PowerShell/Bash и анализируют логи

«Игрушка» или «Инструмент-мультипликатор»?

Для 90% системных администраторов AI (ChatGPT, Gemini, Claude) — это либо «прикольная игрушка для написания стихов», либо «угроза», которая скоро отнимет их работу. Они смотрят на него со скепсисом.

«Админ-пожарный» тратит 30 минут, чтобы найти на Stack Overflow правильную комбинацию awk, sed и grep для парсинга auth.log. Он делает это вручную, потому что «AI не разбирается в моей инфраструктуре».

«Архитектор будущего» смотрит на AI иначе. Он видит в нем вечного Junior-админа. Это бесплатный, не спящий 24/7 стажер, который:

  • Знает все языки (PowerShell, Bash, Python, RegEx) одновременно.
  • Помнит все флаги всех команд.
  • Готов за 5 секунд написать 80% любого скрипта.
  • Может прочитать 10 000 строк логов и найти аномалии.

Проблема не в AI. Проблема в том, что мы не умеем им управлять. Этот гайд — практическое руководство по написанию «архитекторских» промптов (запросов), которые превращают AI из «игрушки» в ваш личный, сверхэффективный ассистент.


Основная часть: 3 уровня AI-делегирования

Мы не будем «лить воду». Мы дадим 3 сценария и готовые к копированию промпты, которые решают реальные задачи.

Главное правило «архитектора»: Контекст решает всё.

  • Промпт «Админа»: напиши скрипт для бэкапа
  • Промпт «Архитектора»: [РОЛЬ] + [ЗАДАЧА] + [КОНТЕКСТ] + [ФОРМАТ ВЫВОДА]

Уровень 1: AI как «Генератор скриптов» (The 80% Solution)

Это самая очевидная, но и самая мощная функция. AI пишет за вас «бойлерплейт» (шаблонный код). Ваша задача — проверить, протестировать и доработать оставшиеся 20%.

Сценарий (PowerShell): Аудит неактивных учетных записей AD

❌ Промпт «Админа»: powershell скрипт для поиска неактивных пользователей в ad

✅ Промпт «Архитектора»:

Plaintext

[РОЛЬ]
Ты — старший системный администратор Windows с 15-летним опытом работы с Active Directory и PowerShell.

[ЗАДАЧА]
Напиши PowerShell-скрипт, который выполняет следующие действия:
1.  Ищет всех *включенных* (Enabled) пользователей в Active Directory.
2.  Находит тех, чей атрибут `LastLogonDate` (или `LastLogonTimestamp`) старше 90 дней.
3.  *Не трогает* учетные записи, в имени (Name) или описании (Description) которых есть слово "service" или "svc_".
4.  Выводит в консоль таблицу с `SAMAccountName` и `LastLogonDate` найденных пользователей.
5.  Экспортирует этот же список в CSV-файл `C:\temp\stale_users.csv`.

[КОНТЕКСТ]
-   Скрипт должен использовать модуль `ActiveDirectory`.
-   Скрипт должен быть совместим с PowerShell 5.1.
-   Убедись, что дата для сравнения (90 дней назад) вычисляется корректно.

[ФОРМАТ ВЫВОДА]
-   Код должен быть в одном блоке.
-   Обязательно добавь подробные комментарии к каждой логической части скрипта, объясняя, *что* она делает и *почему*.

Результат: AI сгенерирует вам готовый к использованию, хорошо прокомментированный скрипт, на написание которого с нуля у вас ушло бы 20-30 минут.

Сценарий (Bash): Создание rsync бэкапа

❌ Промпт «Админа»: bash rsync backup

✅ Промпт «Архитектора»:

Plaintext

[РОЛЬ]
Ты — Senior Linux DevOps Engineer, эксперт по `bash` и `rsync`.

[ЗАДАЧА]
Напиши `bash`-скрипт для инкрементального бэкапа.
1.  Скрипт должен синхронизировать папку `/var/www/html` на удаленный сервер `backup-server.example.com` в папку `/mnt/backups/web`.
2.  Использовать `rsync` по SSH.
3.  Использовать "архивные" флаги, сжатие и показывать прогресс.
4.  Исключить из бэкапа папку `/var/www/html/cache`.
5.  Вести лог-файл в `/var/log/backup.log`, куда записывать дату начала, дату окончания и вывод `rsync`.
6.  Скрипт должен проверять, что `rsync` завершился успешно (код выхода 0).

[КОНТЕКСТ]
-   Предполагается, что SSH-ключи между серверами уже настроены (беспарольный вход).
-   Укажи, какие права (`chmod +x`) нужно дать скрипту.

[ФОРМАТ ВЫВОДА]
-   Предоставь готовый к копированию `bash`-скрипт.
-   Объясни ключевые флаги `rsync`, которые ты использовал.


Уровень 2: AI как «SOC-Аналитик» (Парсинг логов)

Это то, где AI начинает экономить вам часы работы. AI — это grep, awk, sed и sort на стероидах, потому что он понимает контекст логов.

❌ Промпт «Админа»: найди ошибки в логе

✅ Промпт «Архитектора»:

Plaintext

[РОЛЬ]
Ты — L2 SOC-аналитик, эксперт по кибербезопасности Linux.

[ЗАДАЧА]
Я предоставлю тебе фрагмент системного лога `/var/log/auth.log` с сервера Ubuntu.
Твоя задача — проанализировать его и выявить *только* подозрительную активность. Игнорируй обычный "шум" (например, плановые `cron` задачи).

Найди и сгруппируй следующее:
1.  **Атаки Brute-force:** Найди все IP-адреса, с которых было совершено более 5 неудачных попыток входа (`Failed password`).
2.  **Повышение привилегий:** Найди все случаи успешного (`Accepted`) `sudo` или `su` для пользователей, *кроме* `root` или `admin`.
3.  **Подозрительные подключения:** Найди любые *успешные* входы в нерабочее время (с 00:00 по 06:00) или с необычных IP (если они есть).

[ФОРМАТ ВЫВОДА]
-   Дай краткую сводку (Summary) угроз.
-   Предоставь таблицу в формате Markdown: | IP-адрес | Пользователь | Количество неудачных попыток |
-   Укажи точные строки (с временными метками) для всех найденных подозрительных активностей.

[КОНТЕКСТ]
Вот фрагмент лога для анализа:
---
Nov 10 03:15:01 web-prod-01 sshd[1120]: Failed password for root from 185.11.12.33 port 44512
Nov 10 03:15:03 web-prod-01 sshd[1120]: Failed password for root from 185.11.12.33 port 44512
Nov 10 03:15:05 web-prod-01 sshd[1120]: Failed password for root from 185.11.12.33 port 44512
Nov 10 03:15:07 web-prod-01 sshd[1120]: Failed password for root from 185.11.12.33 port 44512
Nov 10 03:15:09 web-prod-01 sshd[1120]: Failed password for root from 185.11.12.33 port 44512
Nov 10 03:15:11 web-prod-01 sshd[1120]: Failed password for root from 185.11.12.33 port 44512
Nov 10 04:02:17 web-prod-01 CRON[1130]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 10 04:02:17 web-prod-01 CRON[1130]: pam_unix(cron:session): session closed for user root
Nov 10 05:30:01 web-prod-01 sshd[1145]: Failed password for invalid user 'admin' from 203.0.113.5 port 12345
Nov 10 05:30:03 web-prod-01 sshd[1145]: Accepted password for 'deploy_user' from 203.0.113.5 port 12345 ssh2
Nov 10 05:30:05 web-prod-01 sshd[1145]: pam_unix(sshd:session): session opened for user deploy_user by (uid=0)
Nov 10 05:30:10 web-prod-01 sudo:  deploy_user : TTY=pts/0 ; PWD=/home/deploy_user ; USER=root ; COMMAND=/usr/bin/systemctl restart nginx
---

Результат: AI мгновенно отфильтрует «белый шум» (CRON) и выдаст вам четкий отчет: «Обнаружена Brute-force атака с 185.11.12.33 (6 попыток) и подозрительный успешный вход deploy_user в 5:30 утра с IP 203.0.113.5 с последующим повышением привилегий sudo


Уровень 3: AI как «Реверс-инженер» (Объяснение кода)

Вы нашли на Stack Overflow магический awk или iptables-скрипт. Что он на самом деле делает? Не запустит ли он rm -rf /?

❌ Промпт «Админа»: что это?

✅ Промпт «Архитектора»:

Plaintext

[РОЛЬ]
Ты — эксперт по Linux-безопасности и системному администрированию.

[ЗАДАЧА]
Я дам тебе фрагмент bash-скрипта. Твоя задача — выступить в роли "аудитора кода".
1.  Объясни по-русски, что делает *каждая* строка, шаг за шагом.
2.  Опиши *общую* цель скрипта: что он пытается достичь?
3.  **Самое важное:** Укажи на *любые* потенциальные риски, уязвимости, "плохие практики" или команды, которые могут привести к потере данных.

[ФОРМАТ ВЫВОДА]
-   Построчное объяснение.
-   Общая сводка.
-   Список рисков с высоким приоритетом.

[КОНТЕКСТ]
Вот скрипт для анализа:
---
#!/bin/bash
LOG_DIR="/var/log/old"
find $LOG_DIR -type f -name "*.log" -mtime +30 -exec rm {} \;
---

Результат: AI не просто скажет «он удаляет старые логи». Он даст вам «архитекторский» ответ: «Сводка: Скрипт ищет и удаляет файлы, заканчивающиеся на .log в папке /var/log/old, которые старше 30 дней. Риск (Высокий): Используется команда -exec rm {} \;. Если переменная $LOG_DIR по какой-то причине будет пустой или не определится, find начнет поиск от корня (/). В сочетании с rm это может привести к катастрофическому удалению файлов по всей системе.»


Вывод: AI — это ваш стажер, а не ваш сменщик

AI не заменит вашу экспертизу и ответственность. Вы — тот, кто нажимает «Enter». Вы — тот, кто несет ответственность за prod.

Но AI может и должен заменить вашу рутину. «Админ» тратит время на написание кода. «Архитектор» тратит время на постановку задач — сначала для AI, а затем для систем.

Начните использовать AI как своего личного ассистента. Делегируйте ему 80% рутинной работы, а сами сфокусируйтесь на том, на что у вас никогда не хватало времени: на проектировании отказоустойчивых систем, на внедрении нового ПО и на построении той самой «архитектуры будущего».


Теги: #ai #chatgpt #sysadmin #automation #powershell #bash #logs #ai4admin

Хотите стать архитектором будущего, а не просто админом? Эта статья — лишь верхушка айсберга. В нашем Telegram-канале «Admin Future» мы каждый день публикуем системные гайды, готовые скрипты, AI-лайфхаки и чеклисты, которые не найти в Google. Мы не просто постим команды — мы строим библиотеку знаний для тех, кто хочет расти от админа до архитектора. Подписывайтесь и становитесь экспертом: Admin Future

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх