Script custom per backup: ho impiegato due ore a capire che era la scelta sbagliata
Avevo iniziato a scriverci sopra uno script Python: zip AES, upload FTP, rotation, una password aneddotica come domanda di sicurezza. Due ore dopo ho capito che Duplicati open-source fa già la stessa cosa, meglio. Piccola riflessione sulla pigrizia virtuosa.
Dovevo fare backup di una quindicina di GB di progetti di lavoro. Il primo riflesso è stato istintivo: scrivi uno script Python. Lo sviluppatore medio ha questa reazione pavloviana — problema tecnico → apri editor → iniziamo a scriverci sopra.
E l'ho fatto. Script pulito: legge una lista di path, filtra node_modules e cache, crea uno zip cifrato AES-256 con pyzipper, lo carica via FTP su uno spazio hosting che avevo inutilizzato. Ho aggiunto una domanda di sicurezza mnemonic (una data di nascita famigliare) per evitare esecuzioni accidentali, rotation dei backup vecchi, log strutturato, .env per le credenziali. Duecento righe di Python pulito, pronto a girare in Windows Task Scheduler.
Poi ho fatto il primo dry-run e ho iniziato a guardare i numeri.
Quindici GB di dati. Dieci GB di spazio disponibile sull'hosting. Un singolo backup non ci stava con rotation sensata. Ho cominciato a stringere le esclusioni, a togliere cartelle di asset binari, a tagliare media non essenziali. Ogni regola che aggiungevo era un pezzo di comportamento che dovevo mantenere nel tempo.
A quel punto mi sono fermato a pensare. Stavo costruendo, piano piano, un software di backup. Fatto male, con meno funzionalità, con più codice da mantenere di qualunque tool maturo già esistente.
Ho cambiato rotta. Sono andato su OneDrive personale (un terabyte di spazio che usavo a quaranta percento) e ho installato Duplicati: open-source, backup incrementali, cifratura AES built-in, retention policy con granularità fine, web UI decente, integrazione con decine di storage target. Venti minuti di wizard, setup fatto. Il primo backup full è partito subito, quelli successivi saranno incrementali — solo i delta modificati, niente più zip ricreato ogni volta.
La lezione non è nuova ma vale la pena ripeterla a sé stessi ogni tanto. Quando il problema che stai risolvendo è un problema classico, già risolto da tool maturi da anni (backup, monitoring, logging, scheduling, parsing di formati standard), scrivere uno script custom è quasi sempre la scelta sbagliata. Non perché non funzioni, ma perché finisci a riprodurre male le stesse feature che trenta persone hanno già implementato meglio, e ti impegni a manutenerle.
Lo script ha senso quando il problema ha un twist specifico del tuo caso che nessun tool pubblico risolve. Per tutto il resto, un'ora spesa a valutare i tool esistenti ti fa risparmiare dieci ore di scrittura e cento di manutenzione.
Oggi ho cancellato il mio script di backup Python senza rimpianti. I dati sono più al sicuro adesso, con meno codice mio in giro.