Логи и конфиги переработаны, добавлен модуль ZFS и ведется работа с телеграм-ботом

This commit is contained in:
2026-02-14 19:20:55 +03:00
parent 40bf9f9887
commit f227824070
21 changed files with 1135 additions and 689 deletions

View File

@@ -1,16 +1,92 @@
# Проект: Автоматизация задач с использованием Cursor AI
# SSH Client — автоматизация миграции 1С, ZFS Backup
![Логотип](https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Cursor_logo.svg)
Централизованное управление удалёнными серверами через SSH: миграция 1С, PostgreSQL, ZFS Backup.
> Краткое описание проекта
## Установка
```bash
pip install -r requirements.txt
# или (с pyproject.toml):
pip install -e .
```
## Конфигурация
Все конфиги в каталоге `config/` (YAML):
| Файл | Назначение |
|------------------------|--------------------------------------|
| `config/migration.yaml` | SSH, PostgreSQL, 1С, migration |
| `config/zfs_backup.yaml` | ZFS Backup (серверы, пулы) |
| `config/config_log.yaml` | Логирование (файл, Telegram, PRD v1.8) |
## Архитектура
```
config/
├── migration.yaml # Миграция 1С, примеры
├── zfs_backup.yaml # ZFS Backup
├── config_log.yaml # Логирование (файл, Telegram)
modules/
├── ssh_base.py # SSHBase — базовые SSH операции (connect, cmd, close)
├── ssh.py # SSHClient — объединённый клиент (SSH + Postgres + 1C)
├── logger.py # Единый логгер проекта
├── protocols.py # SSHProtocol, SSHOperationsBase — контракты модулей
├── postgresql.py # PostgreSQLOperations — операции с PostgreSQL
├── c1_cluster.py # C1ClusterOperations — операции с кластером 1С
└── zfs_backup_ops.py # ZFS Backup — снапшоты, репликация, очистка
```
**Паттерн использования:**
```python
from modules import SSHClient
client = SSHClient(hostname="host", port=22222, ...)
client.connect()
# PostgreSQL
bases = client.bases_list(srv_pgsql)
# 1С
client.set_c1_config(lxc_name, user, password)
client.base_info_update(...)
client.close()
```
## Сценарии
| Сценарий | Точка входа | Описание |
|------------|----------------------|-----------------------------------|
| Миграция 1С| `1c-migration.py` | Скрипт миграции баз |
| PostgreSQL | `example_postgresql.py` | Примеры: список баз, бэкап, restore |
| Кластер 1С | `example_c1_cluster.py` | Примеры: версия, базы, base_info_update |
| ZFS Backup | `zfs_backup.py` | Cron (ежедневно 20:00), CLI |
## ZFS Backup
Конфигурация: `config/zfs_backup.yaml` (формат v1.1 с `servers[].pools[]`).
```bash
python zfs_backup.py --config=config/zfs_backup.yaml
# или (по умолчанию):
python zfs_backup.py
# после pip install -e .:
zfs-backup
```
Логи: настраиваются в `config/config_log.yaml` (по умолчанию `/var/log/zfs_backup.log`).
Telegram: при `telegram.enabled: true` логи дублируются в Telegram-группу (PRD v1.8).
## Рекомендации
- **SSHClient** — рекомендуемый класс (PEP8). **ssh** — alias для обратной совместимости.
- Конфиги в `config/`: `migration.yaml` (миграция, примеры), `zfs_backup.yaml` (ZFS).
- Новые операционные модули: наследовать от `SSHOperationsBase`, реализовать контракт `ssh: SSHProtocol`.
## Git
## 🚀 Работа с GIT:
```bash
lxc shell code
cd /root/lib/ssh_client
source bin/activate
git status
git add .
git commit -a -m 'Реструктуризировал проект'
git commit -a -m 'Сообщение'
git push -u origin main
exit
```