Spesso ricevo i file, devo lavorarli in qualche modo (crittografia, decrittografia, compressione, normalizzazione ...) e poi li devo girare ad altre entità.
Devo avere la certezza essi siano stati lavorati e ruotati, di seguito la mia organizzazione ed il mio script di controllo.
Di seguito la soluzione che ho adottato sulla piattaforma Microsoft.
Tutti i file ricevuti vengono messi in un unica cartella, dove poi sono presenti delle sottocartelle divise per argomenti, quindi tutto starà in C:\MiaDir\...
Ogni giorno lo schedulatore automatico del sistema operativo esegue il seguente script:
SET INPUTDIR=C:\MiaDir
SET TEMPDIR=C:\Batch\temp
SET LOG=ControllaDir.log
SET ECCEZIONI=C:\batch\bin\ControllaDirEccezioni.ini
:CONTROLLADIR
dir %INPUTDIR% /b /s /a:-d >%TEMPDIR%\%LOG%
:ELIMINAECCEZIONI
findstr /V /G:%ECCEZIONI% %LOGA% >%LOGB%
:INTESTATADATA
echo . >>D:\%LOG%
echo ######################## %date% ############################################# >>D:\%LOG%
:NOFILE
for %%R in (%TEMPDIR%\%LOG%) do if %%~zR equ 0 (
echo Non ci sono problemi da segnalare per oggi >>D:\%LOG%
)
type %TEMPDIR%\%LOG% >>D:\%LOG%
:INVIAEMAIL
blat D:\%LOG% -to casaprocida@mioserver.it
:FINE
Andiamo ad analizzare cosa fà lo script:
In testa mi segno le mie variabili, in modo qualsiasi modifica devo fare allo script mi basta farla lì. Memorizzo in:
- INPUTIDIR il path origine dove devo cercare i file;
- TEMPDIR un path di appoggio per scrivere una copia volatile del file di log;
- LOG E' il nome file in cui vado a scrivere l'esito della ricerca;
- ECCEZIONI E' un file in cui ho inserito tutte le directory o nomi file che se trovati consistenti non devono essere considerati nel file di log;
- /b non vengano visualizzate informazioni di riepilogo relative al file trovato;
- /s cerca nella directory ed in tutte le sue sottodirectory;
- /a:-d visualizza per il file solo l'attributo directory, in modo da mostrarci il path assoluto di esso;
Per mia abitudine preferisco avere un file contenente la storia di ciò che ho trovato, poi ogni tanto lo ripulisco a mano. Di conseguenza ho inserito il passo INTESTADATA che inserisce un marcatore che riposta il giorno in cui ha girato lo script.
Per mia abitudine preferisco avere una segnalazione anche se non ci sono movimenti da segnalare, ciò mi da la conferma che lo script ha girato correttamente, una sorta del controllo sul controllo, quindi ho inserito il passo NOFILE in cui scrivo nel file do non avere trovato nulla di anomalo.
La segnalazione la invio via email, per far ciò utilizzo il buon vecchio blat; è piccolo, opensource e nella sua semplicità fa il suo lavoro correttamente, ciò non toglie che si potrebbero usare chissà quanti altri metodi per inviare email o eseguire segnalazioni.
Lo script gira in automatico tutte le mattine, poco prima che io entro al lavoro, appena arrivo controllo le email, guardo il file di log che mi è arrivato ... e mi risparmio un sacco di tempo nell'effettuare i controlli manualmente, mi rimane il tempo per prendermi il caffè tranquillamente, se non ho riscontrato anomalie.
Nessun commento:
Posta un commento