117 lines
2.9 KiB
Markdown
117 lines
2.9 KiB
Markdown
# Bak&Rest
|
|
|
|
Bak&Rest monitora cartelle configurate su Windows, registra i file creati, modificati, cancellati o spostati e prepara il backup successivo tramite tray app.
|
|
|
|
## Componenti
|
|
|
|
- `BakRestWatchdog`: servizio Windows di monitoraggio.
|
|
- `BakRestTray`: tray app che eseguira' il backup e lo spegnimento.
|
|
- `BakRestConfig`: GUI di configurazione.
|
|
|
|
## Configurazione
|
|
|
|
Alla prima esecuzione viene creato un file TOML modificabile in:
|
|
|
|
```text
|
|
%PROGRAMDATA%\BakRest\config.toml
|
|
```
|
|
|
|
Per creare o trovare il file di configurazione:
|
|
|
|
```powershell
|
|
python -m bakrest.config_cli init
|
|
python -m bakrest.config_cli path
|
|
```
|
|
|
|
In sviluppo si puo' usare un percorso diverso:
|
|
|
|
```powershell
|
|
$env:BAKREST_CONFIG="C:\devel\bak&rest\config\config.toml"
|
|
python -m bakrest.watchdog_runner
|
|
```
|
|
|
|
## Avvio watchdog in console per test
|
|
|
|
```powershell
|
|
python -m pip install -e .
|
|
python -m bakrest.watchdog_runner
|
|
```
|
|
|
|
## Avvio tray app per test
|
|
|
|
```powershell
|
|
python -m pip install -e .
|
|
python -m bakrest.tray_app
|
|
```
|
|
|
|
La tray app legge lo stato prodotto dal servizio e offre il comando `Backup e spegni`. Se il backup fallisce, lo spegnimento non viene eseguito.
|
|
|
|
## Backup senza GUI per Task Scheduler
|
|
|
|
Lo stesso entry point della tray puo' eseguire il backup senza mostrare icone o finestre:
|
|
|
|
```powershell
|
|
python -m bakrest.tray_app --nogui
|
|
```
|
|
|
|
Per testare senza spegnere il PC:
|
|
|
|
```powershell
|
|
python -m bakrest.tray_app --nogui --no-shutdown
|
|
```
|
|
|
|
In alternativa si puo' chiamare direttamente il modulo dedicato:
|
|
|
|
```powershell
|
|
python -m bakrest.backup_nogui
|
|
```
|
|
|
|
Questo percorso e' pensato per Task Scheduler, per esempio su evento di disconnessione o fine sessione. Se il server non e' raggiungibile o il backup fallisce, il comando termina con errore e non spegne il PC.
|
|
|
|
Azione Task Scheduler consigliata in sviluppo:
|
|
|
|
```text
|
|
Programma: C:\Python314\python.exe
|
|
Argomenti: -m bakrest.tray_app --nogui
|
|
Avvia in: C:\devel\bak&rest
|
|
```
|
|
|
|
Per una prova senza spegnimento:
|
|
|
|
```text
|
|
Programma: C:\Python314\python.exe
|
|
Argomenti: -m bakrest.tray_app --nogui --no-shutdown
|
|
Avvia in: C:\devel\bak&rest
|
|
```
|
|
|
|
## Avvio GUI configurazione
|
|
|
|
```powershell
|
|
python -m pip install -e .
|
|
python -m bakrest.config_app
|
|
```
|
|
|
|
La GUI permette di modificare la configurazione e vedere la coda dei file in attesa di backup. I file in coda restano persistenti anche se il computer viene spento senza eseguire il backup.
|
|
|
|
## Installazione servizio Windows
|
|
|
|
Da PowerShell avviato come amministratore:
|
|
|
|
```powershell
|
|
python -m pip install -e .
|
|
python -m bakrest.service install
|
|
python -m bakrest.service start
|
|
```
|
|
|
|
Se `service.autostart = true`, il comando `install` configura il servizio con avvio automatico. Se e' `false`, il servizio viene installato con avvio manuale. Il valore puo' essere sempre sovrascritto passando esplicitamente le opzioni di `pywin32`.
|
|
|
|
Comandi utili:
|
|
|
|
```powershell
|
|
python -m bakrest.service stop
|
|
python -m bakrest.service remove
|
|
python -m bakrest.service debug
|
|
```
|
|
|
|
Il servizio si chiama `BakRestWatchdog`.
|