Когда ИИ хочет помочь слишком сильно
Вы заходите на сервер, видите 95% заполнения диска и паникуете. Вместо того чтобы методично разбираться, спрашиваете у Gemini: "Как освободить место на Ubuntu сервере?"
ИИ радостно предлагает: sudo snap remove --purge $(snap list --all | awk 'NR>1 {print $1}'). Звучит логично - удалить все snap-пакеты. Пока не понимаете, что среди них может быть PostgreSQL. Или Redis. Или что-то еще, что держит вашу базу данных.
Это реальный случай. Пользователь выполнил эту команду. База данных исчезла. Восстанавливать пришлось из последней резервной копии, которая была сделана три дня назад. Потеря данных, простой, стресс - классическая история.
Почему ИИ дает опасные советы
Не потому что он злой. А потому что:
- Он не знает контекст вашего сервера
- Он оптимизирует под общий случай, а не под ваш конкретный
- У него нет понятия "критически важные данные"
- Он следует шаблону: "больше команд - больше очистки"
ИИ не понимает разницу между временными логами и таблицей users с миллионом записей. Для него это просто "данные на диске".
Правильный подход: диагностика перед удалением
1 Сначала посмотрите, что занимает место
Не удаляйте ничего, пока не узнаете, что именно удаляете. Установите ncdu (если нет):
sudo apt install ncdu -y
Запустите с правами root для полного обзора:
sudo ncdu /
2 Проверьте, что у вас вообще установлено
Прежде чем удалять snap-пакеты, посмотрите, какие у вас есть:
snap list
Или более подробно:
snap list --all
Видите postgresql, redis, mongodb? Это ваши базы данных. Не трогайте их.
3 Найдите безопасные цели для очистки
Вот что обычно можно чистить без риска (проверяйте каждый случай!):
| Что чистить | Команда | Риск |
|---|---|---|
| Кэш apt | sudo apt clean |
Низкий |
| Старые журналы | sudo journalctl --vacuum-time=7d |
Средний (потеря логов) |
| Docker-образы | docker system prune -a |
Высокий (удалит неиспользуемые образы) |
Специфика работы с базами данных
Если у вас PostgreSQL, вот как НЕ надо делать:
# НЕ ДЕЛАЙТЕ ТАК!
sudo systemctl stop postgresql
sudo rm -rf /var/lib/postgresql/*
# Теперь ваши данные исчезли
Вместо этого, если PostgreSQL занимает много места:
# Подключитесь к базе
sudo -u postgres psql
# Посмотрите размеры баз
SELECT datname, pg_size_pretty(pg_database_size(datname))
FROM pg_database
ORDER BY pg_database_size(datname) DESC;
# Выход
\q
Часто проблема не в самих данных, а в логах, временных файлах или неочищенных бэкапах. Найдите их через ncdu в /var/log/postgresql/, /tmp/ или в директории с бэкапами.
Безопасный алгоритм очистки сервера
- Сделайте бэкап критичных данных. Да, даже перед очисткой. Если у вас нет автоматических бэкапов - это первая проблема, которую нужно решить.
- Зафиксируйте состояние диска:
df -h - Найдите крупнейшие файлы через ncdu или
sudo du -sh /* | sort -rh | head -20 - Определите тип данных - это логи, кэш, временные файлы или реальные данные?
- Проверьте зависимости - что использует эти файлы?
lsof | grep /path/to/large/file - Очищайте по частям, проверяя после каждого шага, что сервисы работают
- Документируйте что удалили и почему
Как правильно использовать ИИ для администрирования
ИИ-ассистенты - отличные инструменты, но с ограничениями. Вот как их использовать безопасно:
- Всегда проверяйте команды перед выполнением. Если не понимаете, что делает команда - не выполняйте.
- Уточняйте контекст: "У меня сервер с PostgreSQL 14, Redis и Docker. Как безопасно очистить..."
- Просите объяснений: "Почему эта команда безопасна? Что именно она удаляет?"
- Тестируйте на стенде сначала. Если нет стенда - хотя бы проверьте команду с флагом
--dry-runесли он есть.
Для сложных задач, таких как DevOps для ИИ, нужны специализированные подходы, а не общие советы.
Автоматизация без риска
Если вам нужно регулярно чистить сервер, автоматизируйте безопасно:
#!/bin/bash
# Безопасный скрипт очистки
set -e # Выход при ошибке
# Только безопасные операции
sudo apt clean
sudo apt autoremove --purge -y
# Очистка логов старше 30 дней
find /var/log -name "*.log" -type f -mtime +30 -delete
# Docker - только неиспользуемые ресурсы
docker system prune -f
# Никаких удалений баз данных!
# Никаких удалений snap-пакетов без явного указания!
Этот скрипт все еще может быть опасным! Перед автоматизацией протестируйте его вывод с флагом -n для dry-run и проверьте, что он не затрагивает важные данные.
Что делать, если ИИ уже "помог"
Если вы выполнили опасную команду и данные исчезли:
- Немедленно остановитесь. Не пишите на диск, не перезагружайте систему.
- Проверьте бэкапы. Если они есть - восстановитесь.
- Если бэкапов нет, рассмотрите профессиональное восстановление данных.
- Проанализируйте ошибку: почему не было бэкапов? Почему команда была выполнена без проверки?
- Внедрите процесс: проверка команд, тестовые среды, автоматические бэкапы.
Для работы с большими объемами данных, как в случае локального RAG для миллионов PDF, вопросы очистки становятся еще критичнее.
Инструменты для безопасного мониторинга
Лучше предотвратить проблему, чем решать ее:
- Prometheus + Grafana для мониторинга использования диска
- Logrotate для автоматического управления логами
- BorgBackup или Restic для дедуплицированных бэкапов
- Ansible для управления конфигурацией и безопасной очистки
И помните: если вы используете ИИ-агенты для администрирования, как в случае AI-агента для SSH, ограничьте их права максимально. Никаких sudo без контроля.
Финальный совет: создайте чеклист
Прежде чем выполнять любую команду очистки, ответьте на вопросы:
| Вопрос | Если ответ "нет" |
|---|---|
| Я понимаю, что делает эта команда? | Не выполняйте |
| Есть актуальный бэкап? | Сначала сделайте бэкап |
| Можно протестировать на стенде? | Протестируйте сначала |
| Команда удаляет данные, а не освобождает? | Перепроверьте необходимость |
ИИ-ассистенты становятся умнее, но ваша ответственность как администратора никуда не девается. Они - инструменты, а не замены экспертизы. Особенно когда речь идет о данных, восстановление которых стоит дороже, чем несколько гигабайт дискового пространства.
Следующий шаг? Настройте автоматические алерты при заполнении диска на 80%. И регулярные бэкапы. И тестовую среду для проверки команд. Тогда вам не придется в панике спрашивать у ИИ, как освободить место - у вас будет процесс.