Blat, Abakt e un piccolo batch
Farsi spedire un backup completo con un click
Quando un utente segnala un problema, spesso c’è bisogno di ricrearlo sulla macchina di sviluppo: per farlo occorre però un backup aggiornato dei dati, ma se il vostro applicativo è all’interno di una intranet, aiuto! Ottenere i dati via mail diventa a volte penoso o impossibile, a meno che vi siate costruiti una micro procedura d’emergenza…. Il tutto a costo zero, visto che i programmi occorrenti sono free e open source!
Software occorrente:
Blat – programma per spedire mail da linea di comando - http://www.blat.net/
Abakt - A Backup Tool - http://www.xs4all.nl/~edienske/
Seven zip – www.sourceforge.net
Oppure, potete usare anche il classico winzip invece di seve zip, che però non è un tool free.
Per prima cosa installiamo Blat, copiando il file"Blat.exe in"\WINNT\SYSTEM32" o comunque nella cartella di sistema, e poi battiamo il seguente comando:
“Blat -install smtp.yoursite.tld youruserid@yoursite.tld"
ecco la schermata di installazione personalizzata con i miei dati:
Passiamo poi ad installare Abakt – in questo caso c’è una normale routine di installazione – e lanciamo l’eseguibile per creare il task di backup: nell’esempio si tratta di farsi inviare per posta il file eCommerce.mdb, quindi selezioniamo la cartella dove si trova l’archivio, escludendo gli atri files che non interessano:
![]()
Come si può vedere dall’immagine, le possibilità per selezionare i file da escludere sono veramente complete.
Occorre poi selezionare il tipo di azione ed il metodo di archiviazione: dovendo spedire il file, scegliamo di comprimerlo con winzip.
Impostiamo la cartella di destinazione:
![]()
E specifichiamo il modo di operare:
![]()
Potremmo anche verificare gli archivi..
![]()
Testiamo il task per verificare che faccia esattamente quanto necessario, e per avere un file su cui poi testare Blat:
Tutto OK! Abbiamo il file zippato:
Lanciamo il file batch: ecco l’output
Verifichiamo l’arrivo della mail:
A questo punto creiamo un collegamento sul desktop dell'utente, ed al momento del bisogno sarà possibile ricevere senza troppi affanni la copia degli archivi della procedure, o qualunque altro file - ad esempio qualche log!
Ed ecco il testo del file batch che esegue il task di Abakt e poi lo spedisce via mail come allegato utilizzando Blat:
@rem == ///////////////////////////////////////////////////////////////////////////
@rem == ----------------------------------------------------------- ///////////
@rem == This file sends a binary file attached to an email message ///////////
@rem == Each comment has been translated in italian, so each comment ///////////
@rem == will have two lines, the first in english, the second the ///////////
@rem == italian translation ///////////
@rem == .......................................................... ///////////
@rem == Questo file invia un file binario come allegato di una mail ///////////
@rem == per ogni commento la prima riga è in inglese, la sconda riga ///////////
@rem == contiene la traduzione italiana ///////////
@rem == ----------------------------------------------------------- ///////////
@rem == by Virgix - http://www.virgilio.org - summer 2006/Estate 2006 ///////////
@rem == ----------------------------------------------------------- ///////////
@rem == ///////////////////////////////////////////////////////////////////////////
@rem == this part must be edited to fit your paths
@rem == questa parte del file va modificata per adattarla ai vostri percorsi
@rem == Path to Blat executable
@rem == Percorso dell'eseguibile di Blat
set BLAT="C:\Programmi\Blat250\full\blat.exe"
@rem == Path to Abakt executable
@rem == Percorso dell'eseguibile di Abakt
set ABAKT="C:\Programmi\Abakt\Abakt.exe"
@rem == Path to the saved profile to be used from Abakt
@rem == Percorso del profilo salvato da usare con Abakt
set PROFILE=C:\Programmi\Abakt\BackupDBEcommerce
@rem == Path to the file to be sent as mail attach
@rem == Percorso al file chevolete spedire come allegato
set FILE_TO_SEND=C:\TEMP\backup\BackupDBEcommerce.zip
@rem == Your email address
@rem == Il vostro indirizzo di posta
set EMAIL=dev@virgilio.org
@rem == SMPT provider
@rem == il vostro server SMPT
set PROVIDER=out.alice.it
@rem == Body of mail
@rem == it testo della mail
set BODY=Ecco il DB!
@rem == ||||| no need to edit beyond this line! ||||||||||||||||||||||||||||||||
@rem == ||||| fine area da personalizzare! ||||||||||||||||||||||||||||||||
@rem == Prepare blat:
@rem == Preparo blat:
%BLAT% -install %PROVIDER% %EMAIL%
@rem == Call Abakt:
@rem == Eseguo il profili di Abakt:
%ABAKT% -b -x -l -m "%PROFILE%.abp"
goto result%ERRORLEVEL%
:result0
@rem OK (0x00)
%BLAT% -attach %FILE_TO_SEND% -s "%PROFILE%.abp Ok" -body " %BODY% " -to %EMAIL%
@goto end
:result2
@rem OK+WARNING (0x02)
%BLAT% %FILE_TO_SEND% -s "%PROFILE% Ok + Warnings" -to %EMAIL%
@goto end
:result1
@rem ERROR (0x01)
:result3
@rem ERROR+WARNING (0x03)
%BLAT% %FILE_TO_SEND% -s "%PROFILE% Failed!" -to %EMAIL%
@goto end
:end
@rem == You can safely skip this line if you don't want check the output...
@rem == potete cancellare tranquillamente la linea tottostante se non vi interessa vedere l'output
pause
clicca qui per scaricare lo script di invio della mail