14 gennaio 2026

Backup Mirroring con un file batch

In questo articolo utilizzerò il termine "unità" invece della più comune parola "disco". Sebbene Windows (sia 10 che 11) utilizzi ancora spesso la parola "disco" nelle sue finestre di gestione, è una parola tecnicamente impropria per i moderni supporti allo stato solido (SSD), che non contengono alcun disco fisico al loro interno.

I grandi spazi di archiviazione odierni fanno spesso dimenticare la fragilità dei dispositivi digitali, col rischio di tristi  conseguenze. Mantenere file importanti (foto, video, documenti di lavoro, etc) solo su un'unità di archiviazione (es. solo sullo smartphone, o su un DVD o su un hard disk interno o esterno) è un rischio stupido che meriterebbe le frustate. È fondamentale far sì che i file importanti risiedano sempre su più di un supporto.

In un contesto non complesso come quello casalingo, hobbistico o di una piccola azienda potrebbe essere utile adottare una strategia che ho appena scoperto e che funziona benone: creare un file batch che, col comando Robocopy, fa eseguire il backup con modalità mirroring e, con periodicità (tipicamente una volta al mese), eseguire questo backup su due unità esterne (tipicamente dischi USB), da dedicare esclusivamente a questo.

Sì, due. Per essere ancora più sicuri. Visto che i supporti informatici, anche se di buona qualità, sono soggetti a usura e a improvvisi guasti irreparabili anche senza apparente causa, se abbiamo una sola unità di backup, un suo guasto ci metterebbe in una condizione di scarsissima sicurezza fino al suo riacquisto. Detto ciò, se vuoi averne una sola, il file che potrai creare seguendo le istruzioni qui fornite potrà esserti comunque utile: vorrà dire che interromperai l'operazione quando ti verrà chiesto di collegare la seconda unità.

In ogni caso, una buona norma di sicurezza è collegare al PC le unità di backup solo quando è il momento del backup, e tenerle invece scollegate e riposte in un luogo sicuro (es. un armadio) per ridurre il rischio di danni da malware e danni meccanici (es. cadute).

Il Mirroring è preferibile al trascinamento

Quando trascini manualmente i file (per poi eventualmente cliccare per rispondere a Windows che ti chiede se sovrascrivere o ignorare file con nome e estensione uguale), Windows aggiunge i file nuovi e aggiorna/ignora quelli modificati, ma non elimina nulla. Con il tempo, la tua unità di backup si riempe di file obsoleti che hai già cancellato dall'unità "titolare" (quella su cui lavori ogni giorno), creando disordine e sprecando spazio.
Il metodo del Mirroring, invece, rende l'unità di backup identica all'originale: se hai cancellato un file nell'unità principale, lo script lo cancellerà anche nel backup. Questo garantisce un archivio sempre pulito, ordinato e fedele all'originale.

Automazione per evitare spreco di tempo e energia

Il metodo classico del trascinamento costringe spesso a tornare al PC ogni tanto per controllarne lo stato: magari a un certo punto Windows incontra un file di sistema o altro file di cui per qualche motivo la copia è fallita o necessita di specifica autorizzazione, e così interrompe la copia e resta in attesa di un tuo clic per proseguire. Questo comporta il rischio di lasciare il PC acceso per ore inutilmente, per un blocco che magari è avvenuto poco dopo l'inizio del processo. Utilizzando un file batch con il comando Robocopy, la copia non si ferma: lo script salta i file che appaiono come problematici (ma che in realtà problematici non sono, vedi sotto) e prosegue fino alla fine senza richiedere il tuo intervento.

Con comando Robocopy alla fine della copia vengono visualizzati dati su eventuali file che hanno fallito la copia, con statistiche su cosa è stato copiato e cosa no. Un bel risparmio di tempo rispetto alla copia massiva di file con trascinamento, che non prevede nessun report, dopo la quale quindi l'unico modo per verificare il buon fine della copia senza programmi aggiuntivi è selezionare file e cartelle, cliccare su "Proprietà" e guardare se il numero di byte è lo stesso nelle due unità (dato che abbisogna di vari minuti per comparire soprattutto se i file sono molti)... e se c'è una discrepanza bisogna indagare manualmente per capire quali file non sono stati copiati.

Preparazione: Lettere delle unità esterne

Assegna lettere fisse alle unità: Non usare le prime lettere dell'alfabeto (come D, E o F) perché possono variare se inserisci una penna USB o colleghi un lettore CD/DVD esterno, etc. Usa lettere come Y per l'unità principale e J e K per quelle di backup. Di seguito darò per scontato che saranno queste le lettere che userai.
Ecco come fare:
- Clicca col tasto destro su Start
- Clicca su Gestione disco
- Clicca col tasto destro sull'unità interessata
- Clicca su "Cambia lettera e percorso di unità"
- Clicca su "Cambia"
- Scegli la lettera dal menù a tendina e clicca "OK"
- Conferma cliccando "Sì"
Attenzione: con questo tipo di assegnazione si ottiene che un certo computer attribuisca una certa lettera a una certa unità, quindi se cambierai computer la su descritta assegnazione dovrà essere ripetuta.  

Unità Titolare meglio se esterna: Se il tuo PC ha porte USB abbastanza veloci da non rallentare il tuo lavoro (tipicamente USB 3.0 o versioni successive), ti suggerisco di tenere anche i dati su cui lavori regolarmente un'unità esterna (lettera Y). Il fatto che l'unità titolare sia esterna ti dà un vantaggio in caso di necessità di riparazione: se devi portare il PC da un tecnico, potrai consegnarlo senza i tuoi dati, proteggendo la tua privacy ed evitando che urti accidentali durante la riparazione danneggino il tuo archivio, e inoltre con quei dati puoi lavorare su un altro PC provvisorio.

Connessione: Prima di lanciare il backup, collega la prima unità di backup (J) e, se preferisci, anche la seconda (K).

Il Codice Batch

Di seguito do per scontato che, come nell'esempio sopra, per il tuo PC l'unità titolare abbia la lettera Y e le unità di backup abbiano rispettivamente J e K, come intuitivamente si nota osservando lo script che ti fornisco. Copia il codice che vedi nel box qui sotto nel Blocco Note e salvalo ad es. col nome Backup_Mensile.bat. L'importante è che l'estensione sia bat.
Se per qualche motivo alle unità di backup hai deciso di lasciare assegnate lettere diverse da J e K, dovrai intervenire sul testo del codice sostituendo tali lettere con le tue.

Dove salvare il file: va bene salvarlo ad esempio nella cartella "Documenti" o in una sua sottocartella, o sul desktop. Non salvarlo nella root dell'unità C (do per scontato che Windows sia installato nel drive C), perché per motivi di sicurezza la creazione del file log verrebbe bloccata e con essa anche l'intera operazione.

@echo off

for /f "tokens=4" %%a in ('powercfg /getactivescheme') do set "ACTIVE_GUID=%%a"
for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\%ACTIVE_GUID%\238c9fa8-0aad-41ed-83f4-97be242c8f20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" /v ACSettingIndex 2^>nul') do set /a OLD_AC_MIN=%%a / 60
for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\%ACTIVE_GUID%\238c9fa8-0aad-41ed-83f4-97be242c8f20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" /v DCSettingIndex 2^>nul') do set /a OLD_DC_MIN=%%a / 60
for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\%ACTIVE_GUID%\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e" /v ACSettingIndex 2^>nul') do set /a OLD_SCREEN_AC_MIN=%%a / 60
for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\%ACTIVE_GUID%\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e" /v DCSettingIndex 2^>nul') do set /a OLD_SCREEN_DC_MIN=%%a / 60

powercfg /change standby-timeout-ac 0
powercfg /change standby-timeout-dc 0
powercfg /change monitor-timeout-ac 0
powercfg /change monitor-timeout-dc 0

set "SORGENTE=Y:"
set "BACKUP_J=J:"
set "BACKUP_K=K:"
set "LOG_J=%~dp0Backup_Log_J.txt"
set "LOG_K=%~dp0Backup_Log_K.txt"

echo ======================================================
echo PROCEDURA DI BACKUP - MIRRORING
echo ======================================================
echo SORGENTE: UNITA TITOLARE [%SORGENTE%]
echo.
echo Durante il backup saranno sospese le eventuali impostazioni
echo sul risparmio energetico e sullo spegnimento automatico dello
echo schermo, che verranno ripristinate alla fine dell'operazione.
echo Se l'operazione verra interrotta prima della sua conclusione,
echo tali impostazioni rimarranno disabilitate e potranno essere
echo reimpostate dalla finestra "Impostazioni" di Windows.
echo Per interrompere il backup in qualsiasi momento chiudi questa
echo finestra. Non usare CTRL+C (tale comando provocherebbe
echo l'arresto del sistema anche se disporrai diversamente).
echo.
echo PREMI UN TASTO PER INIZIARE IL BACKUP.
pause > nul
echo.

:UNITA_J
if exist %BACKUP_J% goto BACKUP_J
echo Unita J non trovata. Collegala e premi un tasto.
echo Oppure premi S e INVIO per saltare J e passare direttamente a K.
set /p "SCELTA=Scelta: "
if "%SCELTA%"=="s" goto UNITA_K
if "%SCELTA%"=="S" goto UNITA_K
goto UNITA_J

:BACKUP_J
echo [1/2] Trovata unita Backup J. Inizio sincronizzazione...
robocopy "%SORGENTE%" "%BACKUP_J%" /MIR /R:3 /W:5 /DCOPY:DAT /XD "$RECYCLE.BIN" "System Volume Information" /LOG:"%LOG_J%" /TEE
echo.
echo Backup su J completato. Rimuovi J e collega K.
pause
goto UNITA_K

:UNITA_K
if exist %BACKUP_K% goto BACKUP_K
echo ERRORE: Unita K non trovata. Collegala e premi un tasto.
pause
goto UNITA_K

:BACKUP_K
echo [2/2] Trovata unita Backup K. Inizio sincronizzazione...
robocopy "%SORGENTE%" "%BACKUP_K%" /MIR /R:3 /W:5 /DCOPY:DAT /XD "$RECYCLE.BIN" "System Volume Information" /LOG:"%LOG_K%" /TEE
echo.
echo Backup completato su entrambe le unita.
echo.
powercfg /change standby-timeout-ac %OLD_AC_MIN%
powercfg /change standby-timeout-dc %OLD_DC_MIN%
powercfg /change monitor-timeout-ac %OLD_SCREEN_AC_MIN%
powercfg /change monitor-timeout-dc %OLD_SCREEN_DC_MIN%
shutdown /s /t 60
echo IL PC SI SPEGNE TRA 60 SECONDI.
echo Per evitare lo spegnimento PREMI UN TASTO in questa finestra.
pause
shutdown /a
echo Il PC rimane acceso.
pause
exit

Quando sarà il momento di eseguire il backup, collegherai al PC le unità J e K (e anche Y se non lo è già) e lancerai il file così creato. 

Cosa fa il file batch

Facendo doppio clic sul file batch otterrai la stessa cosa che otterresti se formattassi l'unità di destinazione per poi copiarci sopra tutti i file e tutte le cartelle dell'unità Y (ma otterrai questo molto più velocemente se l'unità di destinazione ha già molti file che non sono da aggiornare).
In altre parole, ecco cosa succederà (di seguito per indicare l'unità di backup scrivo "J", ma vale anche per l'unità "K"):

- I file presenti su Y ma non ancora su J vengono copiati
- I file presenti su entrambe le unità ma diversi per dimensione o data di modifica vengono sovrascritti: vince sempre la versione su Y
- I file presenti su J ma non presenti su Y vengono eliminati (anche la cancellazione di file obsoleti è importante in un aggiornamento)

...Il tutto con due eccezioni: le cartelle "$RECYCLE.BIN" e "System Volume Information" (cartelle tecniche, non contenenti tuoi dati) non vengono coinvolte nell'operazione in quanto il file batch dispone di escluderle.

Dopo l'operazione 

Nella cartella dove hai salvato il file batch verranno creati i file Backup_Log_J.txt e Backup_Log_K.txt. Puoi aprirli con il Blocco Note per verificare il resoconto dell'operazione. 

Al termine del backup comparirà una finestra che ti avvertirà dell'imminente spegnimento del PC. Avrai 60 secondi per annullare lo spegnimento. Per farlo potrai cliccare sulla finestra di comando e premere un tasto. 
Questo sistema ti permette di gestire backup con il minimo sforzo e con precisione, e soprattutto con una comodità molto maggiore rispetto al classico trascinamento o con l'uso di software aggiuntivi, di fatto non necessari a questo scopo.


Ti è piaciuto questo articolo? Amerai quelli di Psicoperformance!
Clicca qui e visita Psicoperformance.com

Nessun commento:

Posta un commento

--- IMPORTANTE --- Per evitare spam ed eccesso di spazzatura stupidiota, i commenti sono soggetti a moderazione, quindi non compaiono immediatamente il loro invio. Se non vuoi inserire il tuo nome anagrafico, usa un nick; se non sai come fare clicca in alto su "COME COMMENTARE". Mi riservo di non approvare commenti di utenti che compaiono come "Anonimo", perché questo potrebbe generare confusione in caso di più utenti anonimi.