Ricerca

luned́ 20 ottobre


Backup automatico di file e cartelle su un'unità rimovibile

Backup automatico di file e cartelle su un'unità rimovibile

di Michele Nasi (12/07/2008)


Avete mai pensato come potrebbe essere comodo effettuare un backup automatico del contenuto di cartelle specifiche su un'unità rimovibile (un hard disk esterno od una penna USB, ad esempio), non appena questa venga collegata al personal computer?

Ben lungi dal voler proporre una soluzione "definitiva", illustriamo in quest'articolo una metodologia, semplice da applicare, che non richiede l'impiego di nessuna utilità sviluppata da terze parti.

Premettiamo subito, inoltre, che lo script .vbs in grado di effettuare la copia automatizzata delle cartelle indicate può essere ampiamente migliorato. Anzi, vi invitiamo ad inviarci i vostri commenti in merito sottoponendoci proposte di modifica.

Mettendo in pratica i suggerimenti presentati nell'articolo, ogniqualvolta si connetta l'unità disco esterna al sistema in suo, uno script - eseguito in modo automatico - si farà carico di creare una copia di backup delle cartelle specificate, dei file in essi contenuti e di tutte le eventuali sottocartelle. Ogni directory oggetto del backup, verrà automaticamente memorizzata, a sua volta, all'interno di una cartella avente il nome del computer in uso.
In questo modo, collegando l'unità rimovibile al COMPUTER1, le cartelle oggetto del backup verranno salvate nella directory \COMPUTER1; connettendo la periferica al COMPUTER2, le directory indicate saranno invece salvate in \COMPUTER 2 e così via.

Per verificare il nome assegnato al computer che si sta utilizzando, è sufficiente fare clic con il tasto destro del mouse sull'icona Risorse del computer quindi sulla scheda Nome computer.


Nei nostri test abbiamo usato un comunissimo "hard drive case" USB 2.0 (Sitecom MD-206) installandovi, al suo interno, un disco fisso SATA.


Dopo aver collegato il disco fisso al personal computer attraverso il cavo USB in dotazione con l'"hard drive case", abbiamo creato, nella directory radice dell'unità, il seguente file VBScript (backup.vbs):

Dim computername
Dim ParentFolder
Dim objShell
Dim objFolder
Set WshNetwork = WScript.CreateObject("WScript.Network")
computername = WshNetwork.ComputerName

Set WshShell = WScript.CreateObject("WScript.Shell")

Const FOF_CREATEPROGRESSDLG = &H0&
Const FOF_NOCONFIRMATION = 16
Const FOF_NOCONFIRMDIRCREATE = 512

ParentFolder = WshShell.CurrentDirectory

creadirectory ParentFolder
if right(ParentFolder,1)<>"\" then ParentFolder=ParentFolder&"\"

select case computername
' modificare inserendo altri computer e le varie cartelle
' oggetto del backup:
' -------------------------------------------------------
case "MIOCOMPUTER"
copiafile "d:\documenti", ParentFolder&computername
copiafile "c:\lavori", ParentFolder&computername
copiafile "c:\foto\rossi", ParentFolder&computername
copiafile "C:\prova\test", ParentFolder&computername
' -------------------------------------------------------
' fine modifiche
end select

function creadirectory (nomedirectory)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(nomedirectory)
objFolder.NewFolder computername
end function

function copiafile (sorgente, destinazione)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(destinazione)
objFolder.CopyHere sorgente, FOF_CREATEPROGRESSDLG + FOF_NOCONFIRMATION
+ FOF_NOCONFIRMDIRCREATE
end function

WScript.Quit


Analizziamo rapidamente il funzionamento dello script. L'istruzione alla riga 6 (computername = WshNetwork.ComputerName), si occupa di recuperare il nome del computer in uso mentre l'istruzione alla riga 14, la lettera identificativa dell'unità rimovibile.

Successivamente (riga 16) viene invocata una funzione (function creadirectory (nomedirectory)) che si occupa di creare, nella directory radice dell'unità rimovibile, una cartella alla quale viene assegnato il nome del computer (riga 34) precedentemente rilevato.

Alla riga 17 viene controllato che la lettera identificativa dell'unità rimovibile contenga un "backslash" (barra rovesciata) finale; in caso contario, viene aggiunto.

Il select case alla riga 19, permette di definire un comportamento diverso per ciascun computer al quale l'unità esterna viene collegata.
Nell'esempio (riga 22), lo script VBS - nel caso in cui venga eseguito su un sistema denominato MIOCOMPUTER - provvede a creare una copia delle cartelle di seguito indicate (righe 23-26) utilizzando la funzione copiafile.
Tale funzione, com'è possibile verificare, riceve in ingresso la cartella contenente i file oggetto del backup e la cartella di destinazione.
L'operazione di copia dei file e delle cartelle avviene (riga 40) usando le preferenze definite mediante l'impiego delle costanti FOF_CREATEPROGRESSDLG, FOF_NOCONFIRMATION e FOF_NOCONFIRMDIRCREATE (righe 10-12).
Se non si desidera che venga mostrata una finestra di dialogo durante la copia, FOF_CREATEPROGRESSDLG va impostato a &H4&; viceversa, il valore della costante deve essere posto a &H0& (riga 10).

Le altre due costanti, invece, permettono, rispettivamente, di non richiedere alcuna conferma in caso di sovrascruttura di file e cartelle né all'atto della creazione di nuove directory.


Le righe 22-26 sono ovviamente liberamente personalizzabili. E' sufficiente sostituire le cartelle inserite a titolo esemplificativo nel file con quelle oggetto di backup avendo cura di modificare (riga 22) anche il nome del computer.
Aggiungendo una nuova istruzione case "NOMECOMPUTER" dopo la riga 26, quindi specificando, nelle righe seguenti, le directory d'interesse (esempio: copiafile "X:\CARTELLA_ORIGINE", ParentFolder&computername), è possibile fare in modo che lo script VBS si comporti in modo adeguato ogniqualvolta venga connessio al computer A, B o C.
Articolo seguente: Rescue CD BitDefender: il supporto si aggiorna automaticamente
Articolo precedente: Creare una copia speculare del disco fisso con HD Clone
37370 letture
Ultimi commenti
inviato da claudioz > pubblicato il 16/11/2010 17:12:16
pciao Sonia, ti ho fatto un semplicissimo script che fara il backup dei messaggi di outlook e la rubrica, per inserire gli account lo script diventera meno comprensibile ma considera che sara veramente raro che il tuo amico cieco creera nuovi account e comunque ti dico che risiedono nel registro di sistema (regedit) alla chiave eccoti lo script vbs scelta = InputBox ("inserisci r per Ripristino o b per Backup?", "benvenuto al programma di backup e ripristino outlook") percorsomessaggioutlook = "C:\Documents and Settings\Claudio\Impostazioni locali\Dati applicazioni\Identities\{C65721B1-54A5-427C-A9A7-9A2D25D8B0BB}\Microsoft\Outlook Express" percorsomessaggibackup = "D:\Documenti\backup outlook" percorsorubricaoutlook = "C:\Documents and Settings\Claudio\Dati applicazioni\Microsoft\Address Book" percorsorubricabackup = "D:\Documenti\backup outlook\rubrica" if scelta = "b" then CreateObject("Scripting.FileSystemObject").DeleteFolder percorsomessaggibackup & "\*" if scelta = "r" then CreateObject("Scripting.FileSystemObject").DeleteFile percorsomessaggioutlook & "\*" if scelta = "b" then CreateObject("Scripting.FileSystemObject").CopyFolder percorsomessaggioutlook, percorsomessaggibackup & "\messaggi" if scelta = "b" then CreateObject("Scripting.FileSystemObject").CopyFolder percorsorubricaoutlook, percorsorubricabackup if scelta = "r" then CreateObject("Scripting.FileSystemObject").CopyFolder percorsomessaggibackup & "\messaggi", percorsomessaggioutlook if scelta = "r" then CreateObject("Scripting.FileSystemObject").CopyFolder percorsorubricabackup, percorsorubricaoutlook visto che usi ghost vuol dire che hai almeno due partizioni e quindi la tua cartella documenti e' sicuramente stata spostata in D PS controlla bene i percorsi e modificali perche da computer a computer variano leggermente e ricorda di creare nella tua cartella documenti una cartella dal nome "backup outlook" lo script che ti ho fatto e' di una semplicita elementare e lo puoi modificare magari miscelandolo allo script che vedi qui ad inizio pagina ove il backup parte da unita rimovibile
inviato da soniaa > pubblicato il 15/11/2010 01:31:36
Salve, sono ancora Sonia, sii ora funziona!!... non avevo scritto il nome del miocomputer maiuscolo....opps devo dire che questo e' proprio un bel programmino, non si deve installare nulla! Complimentoni!... Visto che nel tempo libero aiuto un cieco all'apprendimento dell'uso PC, utilizzero questo programmino mettendolo su una pendrive ed inseriro' nello script le cartelle di outlook rubrica account e messaggi, cosi lui ogni tanto puo inserire la pendrive ed il backup sara eeffettuato in automatico, cosi quando incasina il pc gli bastera fare un bel ghost che gli ho preparato. Il problema pero e' che poi io dovro andare da lui a rispostare i files dalla pendrive a C:... Qualcuno di voi potrebbe fare magari uno script che automatizza cio? Diamo una mano ai disabili ...su dai...
inviato da soniaa > pubblicato il 14/11/2010 03:25:38
confermo la cartella viene creata ma rimane vuotaaa!
inviato da Leo1983 > pubblicato il 04/03/2009 17:16:53
Salve a tutti.. Ho modificato lo script e in effetti funziona. Solo che se inserisco la chiave usb mi si apre la finestra dell'autoplay ma dentro non c'è l'icona del backup...cosa ho sbagliato???
inviato da Cricri > pubblicato il 05/02/2009 10:29:17
Ciao a tutti, molto utile questa cosa! Io uso le memorie Usb soprattutto per scambiare file musicali con amici e amiche. E' possibile modificarlo per fare in modo che inserendo una memoria Usb nel computer, questa vada a copiare in automatico tutti i file musicali presenti nel pc? (che purtroppo non sono mai solo nella cartella "musica", ma in giro per il desk, nelle cartelle di C, ecc...) :? In pratica mi servirebbe che riconosca solo i file con estensione ".mp3", ".wma", e se proprio anche ".mpc", ma soprattutto i primi due, e che non sia vincolato da un particolare nome computer, ma che funzioni su qualsiasi pc. Cosa devo modificare del codice per fare in modo che funzioni in questo modo? Grazie in anticipo per l'attenzione! Cristina
inviato da sasde > pubblicato il 21/12/2008 17:09:39
Salve, molto bello questo script ma è possibile aggiungere la data odierna ogni volta che viene effettuato il backup? grazie
inviato da Michele Nasi > pubblicato il 23/10/2008 10:48:31
Hai sostituito l'indicazione MIOCOMPUTER alla riga 22 dello script vbs con il nome assegnato al tuo computer?
Hai specificato opportunamente (funzione copiafile) le cartella da "backuppare"?
inviato da alexx > pubblicato il 23/10/2008 09:33:54
ho un problema con lo script: crea la cartella con il nome del computer, ma rimane vuota: non copia nessun file!
qualcuno potrebbe aiutarmi?
Grazie


Leggi tutti i commenti

Commenta anche su Facebook

Link alla home page de IlSoftware.it

P.IVA: 02472210547 | Copyright © 2001 - 2014

Pubblicità | Contatti | Informazioni legali | Cookies | Storia | Supporta | Credits

Segui i nostri Feed RSS de IlSoftware.it Segui i nostri Feed RSS