Documenta scelte tecniche e problemi risolti
This commit is contained in:
35
README.md
35
README.md
@@ -2,6 +2,8 @@
|
||||
|
||||
Bak&Rest monitora cartelle configurate su Windows, registra i file creati, modificati, cancellati o spostati e prepara il backup successivo tramite tray app.
|
||||
|
||||
Per il dettaglio delle scelte tecniche, dei problemi risolti e delle decisioni prese durante la messa a punto, leggere anche [DOCUMENTAZIONE_TECNICA.md](DOCUMENTAZIONE_TECNICA.md).
|
||||
|
||||
## Componenti
|
||||
|
||||
- `BakRestWatchdog`: servizio Windows di monitoraggio.
|
||||
@@ -126,7 +128,7 @@ In alternativa si puo' chiamare direttamente il modulo dedicato:
|
||||
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.
|
||||
Questo percorso e' pensato per Task Scheduler alla disconnessione dell'utente. 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:
|
||||
|
||||
@@ -165,33 +167,38 @@ tasks\BakRestBackupOnLogoff.xml
|
||||
tasks\BakRestServerNotifierEvery30Minutes.xml
|
||||
```
|
||||
|
||||
Importazione da PowerShell:
|
||||
|
||||
```powershell
|
||||
schtasks /Create /TN "BakRest\BackupOnLogoff" /XML "tasks\BakRestBackupOnLogoff.xml" /F
|
||||
schtasks /Create /TN "BakRest\ServerNotifierEvery30Minutes" /XML "tasks\BakRestServerNotifierEvery30Minutes.xml" /F
|
||||
```
|
||||
|
||||
Se `schtasks` segnala un errore di encoding XML, usa lo script di registrazione che crea una copia temporanea UTF-16 compatibile con Task Scheduler:
|
||||
Gli XML sono sorgenti di base. Per registrarli su una macchina reale e' consigliato usare lo script PowerShell, che corregge dinamicamente path Python, working directory e codifica:
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\Register-BakRestTask.ps1 -Task Notifier
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\Register-BakRestTask.ps1 -Task BackupOnLogoff
|
||||
```
|
||||
|
||||
Per registrare il task di backup sull'utente corrente invece che sul gruppo `Users`:
|
||||
Per il backup al logoff, usare credenziali memorizzate. Questa modalita' e' necessaria perche' al logoff il token interattivo non e' abbastanza affidabile per avviare un processo lungo:
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\Register-BakRestTask.ps1 -Task BackupOnLogoff -RunAsCurrentUser
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\Register-BakRestTask.ps1 -Task BackupOnLogoff -RunAsStoredCredentials -UserName ".\pettirosso"
|
||||
```
|
||||
|
||||
Per debug senza spegnimento:
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\Register-BakRestTask.ps1 -Task BackupOnLogoff -RunAsCurrentUser -NoShutdown
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\Register-BakRestTask.ps1 -Task BackupOnLogoff -RunAsStoredCredentials -UserName ".\pettirosso" -NoShutdown
|
||||
```
|
||||
|
||||
Il task di backup usa l'evento Security `4647`, cioe' logoff/disconnessione iniziata dall'utente. Se sulla macchina questo evento non viene scritto, bisogna abilitare l'audit logoff oppure useremo un trigger alternativo.
|
||||
Verifica del task backup:
|
||||
|
||||
```powershell
|
||||
schtasks /Query /TN "BakRest\BackupOnLogoff" /XML |
|
||||
Select-String "UserId|LogonType|Winlogon|7002|Arguments"
|
||||
```
|
||||
|
||||
Il task di backup usa l'evento `System` del provider `Microsoft-Windows-Winlogon`, `EventID=7002`. Nei test l'evento `Security 4647` veniva scritto ma non agganciava il task in modo affidabile, quindi e' stato abbandonato.
|
||||
|
||||
Nel task definitivo deve comparire:
|
||||
|
||||
```xml
|
||||
<LogonType>Password</LogonType>
|
||||
```
|
||||
|
||||
Il task notifier usa un trigger al logon e un trigger giornaliero con ripetizione `PT30M`, quindi avvisa durante la giornata anche se non viene usata la tray app.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user