Backup avanzato di file e cartelle con script batch

Questo articolo è stato letto 7233 volte !

prompt

E’ sempre bene ricordare che l’operazione di backup è da considerarsi una delle più importanti nella routine di un sistemista, ma anche come utilizzatore finale di hardware. Considernado che gli ultimi sistemi operativi come Windows 7 e Windows 8 hanno già a disposizione una gestione vera e propria di backup, il 90% dell’utenza, purtroppo, perde tempo prezioso a cercare software di terze parti (e c’è pure chi li compra), senza rendersi conto che il nostro sistema operativo possiede nella parte dedicata alla shell, una potenzialità enorme ed una serie di comadi che possono tranquallamente soddisfare quanto dobbiamo realizzare. Nell’articolo di oggi vi mostrerò con uno script abbastanza evoluto come eseguire un backup incrementale di alcuni files e cartelle da un pc remoto ad una cartella di un fileserver con un semplice file batch.

  La realizzazione dello script richiede solo l’utilizzo del programma esterno blat esclusivamente per inviarci il risultato di quanto eseguito per posta elettronica, mentre le restanti operazioni sono totalmente contenute nei comandi shell. Iniziamo col dire che il comando base che servirà allo scopo è XCOPY; per vedere come è strutturato il comando e di quali opzioni possiamo disporre, digitare dal prompt il comando: xcopy/? Arrivati a questo punto vediamoci insieme lo script completo realizzato dal sottoscritto:

[sociallocker]

cls
@echo off
cd\
net use T: \\10.109.12.72\dati /user:EPC314\administrator password > d:\batch\logs\Backup.txt 2>&1
ping 127.0.0.1 -n 5 -w 1000

set oggetto=d:\batch\logs\tmpoggetto.txt
set logfile=d:\Batch\logs\Backup.txt

IF EXIST T:\ GOTO OKBACKUP
ping 127.0.0.1 -n 5 -w 1000

:NOBACKUP
set /p “noEOL=Backup Cetop del %date:~0,2%-%date:~3,2%-%date:~6,4% – Il Computer non risponde, oppure e’ spento !” <nul > d:\batch\logs\tmpoggetto.txt

D:\Batch\blat262\full\blat -bodyF %logfile% -sf %oggetto% -to info@stefanoreverberi.com -server mail.stefanoreverberi.com -f backup@stefanoreverberi.com
GOTO FINE

:OKBACKUP
net use L: \\revhome\mfd\backup /user:revhome\administrator password
ping 127.0.0.1 -n 5 -w 1000
set /p “noEOL=Backup Cetop del %date:~0,2%-%date:~3,2%-%date:~6,4% – ” <nul > d:\batch\logs\tmpoggetto.txt
xcopy T:\ L:\ /FCESYD > d:\batch\logs\Backup.txt
findstr /IL “copied” d:\batch\logs\Backup.txt >> d:\batch\logs\tmpoggetto1.txt
setlocal DisableDelayedExpansion
set “firstLineReady=”
(
for /F “eol=$ delims=” %%a in (d:\batch\logs\tmpoggetto1.txt) DO (
if defined firstLineReady (echo()
set “firstLineReady=1”
<nul set /p “=%%a”
)
) > d:\batch\logs\tmpoggetto.txt
D:\Batch\blat262\full\blat -bodyF %logfile% -sf %oggetto% -to info@stefanoreverberi.com -server mail.stefanoreverberi.com -f backup@stefanoreverberi.com
ping 127.0.0.1 -n 5 -w 1000
net use T: /DELETE
ping 127.0.0.1 -n 5 -w 1000
net use L: /DELETE
ping 127.0.0.1 -n 5 -w 1000

:FINE
del d:\batch\logs\tmpoggetto.txt
del d:\batch\logs\tmpoggetto1.txt
exit

potete scaricare il file a questo link

[/sociallocker]

ed ecco il risultato ottenuto via mail nelle 2 condizioni imposte dallo script:

mailbox

come possiamo notare, la comodità dello script ci fornisce già dall’oggetto una comoda lettura sull’esito del backup; in caso non fosse sufficiente possiamo comunque aprire le mail e vederne il contenuto dettagliato:

1° caso, l’hardware risponde e lo script esegue il backup:

caso1

2° caso, l’hardware è spento e lo script non eseue il backup:

caso2

Arrivederci al prossimo script :ok:

Questo articolo è stato letto 7233 volte !

Condividi:

Nessun commento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.