Логи и конфиги переработаны, добавлен модуль ZFS и ведется работа с телеграм-ботом
This commit is contained in:
92
README.md
92
README.md
@@ -1,16 +1,92 @@
|
||||
# Проект: Автоматизация задач с использованием Cursor AI
|
||||
# SSH Client — автоматизация миграции 1С, ZFS Backup
|
||||
|
||||

|
||||
Централизованное управление удалёнными серверами через 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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user