locked
Script Backup RRS feed

  • Domanda

  • ciao ho creato uno script di backup per il mio pc

    lo condivido puo tornarvi utile:

    ----------------------------------------------------------------------------

    xcopy /c /d /e /h /i /r /y D:\documenti  i:\bckport\documenti
    xcopy /c /d /e /h /i /r /y D:\Immagini   i:\bckport\immagini
    xcopy /c /d /e /h /i /r /y D:\video      i:\bckport\video
    xcopy /c /d /e /h /i /r /y D:\musica     i:\bckport\musica
    xcopy /c /d /e /h /i /r /y D:\Software   i:\bckport\software
    xcopy /c /d /e /h /i /r /y D:\scansioni  i:\bckport\scansioni

    echo Backup Completato!

    @pause

    -----------------------------------------------------------------------------------

    il Problema mio e il seguente mettiamo che nella cartella video ci sia un video pippo.avi che con questo script viene copiato nella destianzione correttamente .

    Ma domani io decido che pippo.avi non mi interessa più e lo cancello sul backup però rimane !!

    come posso far in modo che i file che cancello vengano anche cancellati dalla destinazione ?

    grazie a tutti

    giovedì 7 febbraio 2013 09:29

Risposte

  • Secondo me con uno script batch la cosa potrebbe diventare troppo complessa....comunque trovi qualche idea qui:

    http://www.computerhope.com/forum/index.php?topic=113845.0

    In alternativa dovresti passare a linguaggi di scripting un po' più potenti, come ad esempio PowerShell o VBScript.

    giovedì 7 febbraio 2013 13:22
    Moderatore
  • Siamo costretti a complicarci la vita per colpa di quelli del sw che non riescono mai ha fare una cosa giusta :-))

    @echo off
    title=%~n0
    
    set r=robocopy
    set d=i:\bckport
    set o=  /e /r:1 /w:1 /np 
    echo Backup Cominciato...
    (
    %r% D:\documenti  %d%\documenti   %o%
    %r% D:\Immagini   %d%\immagini    %o%
    %r% D:\video      %d%\video       %o%
    %r% D:\musica     %d%\musica      %o%
    %r% D:\Software   %d%\software    %o%
    %r% D:\scansioni  %d%\scansioni   %o%
    ) >"%d%\_%~n0.log"
    
    echo Backup Completato!
     
    @pause

    Robocopy  è enormemente più potente di un xcopy e rimane irraggiungibile anche per powershell o vbscript ... 

    Ecco un esempio in powershell che usa sempre robocopy

    $dir_list=@("D:\documenti","D:\Immagini","D:\video","D:\musica","D:\Software","D:\scansioni")
    $opt= "/e /w:1 /r:1 /np"
    $des="i:\bckport"
    $des="c:\temp"
    cls
    $dir_list | % { 
     & robocopy "$_ $des\" + $_.substring(3 , $_.length -3) + $opt >>"$des\$($MyInvocation.MyCommand.name).log"
     }
    

    Se vuoi un "mirroring" usa l'opzione /MIR ma ATTENZIONE: come ha scritto Skywalker "Se cancelli per erroreun file che ti serve e te ne accorgi solo dopo aver fatto il backup, da dove lo recuperi ..."

     

    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI

    venerdì 8 febbraio 2013 00:07
    Moderatore
  • Ecco come l'ho implementato alla fine e schedulato ogni 2 giorni

    il prossimo passo lo faccio in Powershell

    Purtroppo per la copia/sincro dei files/folders, robocopy rimane imbattibile, mentre powershell è molto debole in questo caso specifico, l'abbiamento vincente è robocopy + powershell per l'analisi del file di log generato.

    echo Adesso cancello il vecchio backup...Attendere...!!!
    echo anche tutti i Folders  non solo i files!!!
    ( set empty=%d%\_%random%_ mkdir "%empty%" robocopy "%empty%" "%d%" /MIR /w:0 /r:0 ) echo ho cancellato tutto ...!!

    Ciao alla prossima

    Gas


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI


    martedì 26 febbraio 2013 22:09
    Moderatore

Tutte le risposte

  • Ciao, in realtà lo script non fa altro che copiare i file da una cartella ad un altra quindi è normale che non sia in grado di eliminare file precedentemente copiati.

    Potresti optare per una di queste due soluzioni:

    - Impostare l'eliminazione di tutti i file presenti nella cartella di backup prima di iniziare la copia. Ti consiglio l'eliminazione di tutto il contenuto di ogni singola cartella prima di ogni comando xcopy. Ad esempio questa potrebbe essere una delle possibili soluzioni:

    rmdir /S /Q cartellabackup
    mkdir cartellabackup
    - Utilizzare direttamente un software di sincronizzazione invece di uno script (ne esistono diversi gratuiti). In questo modo il software mantiene automaticamente le due cartelle aggiornate.
    giovedì 7 febbraio 2013 10:55
    Moderatore
  • Utilizzando il prodotto Microsoft gratuito Sync Toy 2.1 cha fa tutto automaticamente con la funzione Echo
    giovedì 7 febbraio 2013 11:49
  • Ciao, a parte il fatto che Sync toy non è più supportato...quindi occhio ad usarlo perchè è valido fino ad XP\Vista ma su 7-8 ogni tanto si incastra con le shadow copies...io ti consiglio se proprio di usare un tool di sync di terze parti, ce ne sono tanti nati per 7 e gratuiti che googolando troverai che vanno molto meglio di Synctoy oramai sorpassato.

    A.

    giovedì 7 febbraio 2013 12:42
    Moderatore
  • Ragazzi se volevo usare un software non compilavo uno script :-)

    Per Fabrizio:

    so che non lo fa non ha l'istruzione per farlo

    Si e vero potrei fare quella operazione di rimozione e ci ho pensato anche io , ma così non diventa più backup incrementale

    i file sono molti e passerebbe le giornate il pc a fare backup non volevo esattamente questo

    altri consigli ??


    giovedì 7 febbraio 2013 13:11
  • Secondo me con uno script batch la cosa potrebbe diventare troppo complessa....comunque trovi qualche idea qui:

    http://www.computerhope.com/forum/index.php?topic=113845.0

    In alternativa dovresti passare a linguaggi di scripting un po' più potenti, come ad esempio PowerShell o VBScript.

    giovedì 7 febbraio 2013 13:22
    Moderatore
  • la mia regola (opposta a quella di Gastone ah ah :)) è: se posso usare un sw perchè fare uno script? Almeno se non va me la prendo con quelli del sw :-))).

    Buon proseguimento!!

    A.

    giovedì 7 febbraio 2013 13:23
    Moderatore
  • la mia regola (opposta a quella di Gastone ah ah :)) è: se posso usare un sw perchè fare uno script? Almeno se non va me la prendo con quelli del sw :-))).

    Buon proseguimento!!

    A.

     ahahahah Bhè Teoria non male

    ma il bello e quello di complicarsi la vita :-)

    giovedì 7 febbraio 2013 15:03
  • Secondo me con uno script batch la cosa potrebbe diventare troppo complessa....comunque trovi qualche idea qui:

    http://www.computerhope.com/forum/index.php?topic=113845.0

    In alternativa dovresti passare a linguaggi di scripting un po' più potenti, come ad esempio PowerShell o VBScript.


    ci do una occhiata in effetti sto studiando powerschell ho appena finito il primo capitolo e vorrei lanciarlo dalla finestra !!!
    giovedì 7 febbraio 2013 15:04
  • Secondo me con uno script batch la cosa potrebbe diventare troppo complessa....comunque trovi qualche idea qui:

    http://www.computerhope.com/forum/index.php?topic=113845.0

    In alternativa dovresti passare a linguaggi di scripting un po' più potenti, come ad esempio PowerShell o VBScript.

     bhè in realtà il tizio del tuo link fa propio una cosa simile

    title = making music backup...
    xcopy /d /c /y "C:\Users\Polle\Music" "%~d0\Music"         this copys all music files from my pc (master) to my hdd (client)
    for /r "%~d0\Music\" %%F in (*.*) do echo %%F>> file.txt           this lists all music files on my hdd (client) and puts them in a file called file.txt
    for /F "tokens=2* delims=\" %%I in (file.txt) do if not exist "C:\Users\Polle\%%I\%%J" del "%~d0\%%I\%%J"      takes each entry in file.txt and checks if it exists on my pc (master), if not, it deletes the file from the hdd
    del file.txt    delete the list of files
    for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"   deletes all empty folders

    ora devo interpretare il codice per adattarlo al mio script ma direi che a grandi linee ci siamo :-D

    giovedì 7 febbraio 2013 15:13
  •  bhè in realtà il tizio del tuo link fa propio una cosa simile

    Si....appunto, mi riferivo proprio a quella parte che hai visto. Nel post precedente intendevo qualche idea utilizzando i batch. :)

    VBScript e PowerShell erano l'alternativa se non riuscivi ad implementarlo, ma non avevo ancora inserito link di approfondimento.




    giovedì 7 febbraio 2013 15:32
    Moderatore
  • Massimiliano Racanati ha pensato forte :

    ciao ho creato uno script di backup per il mio pc

    lo condivido puo tornarvi utile:

    ----------------------------------------------------------------------------

    xcopy /c /d /e /h /i /r /y D:\documenti  i:\bckport\documenti
    xcopy /c /d /e /h /i /r /y D:\Immagini   i:\bckport\immagini
    xcopy /c /d /e /h /i /r /y D:\video      i:\bckport\video
    xcopy /c /d /e /h /i /r /y D:\musica     i:\bckport\musica
    xcopy /c /d /e /h /i /r /y D:\Software   i:\bckport\software
    xcopy /c /d /e /h /i /r /y D:\scansioni  i:\bckport\scansioni

    echo Backup Completato!

    @pause

    -----------------------------------------------------------------------------------

    il Problema mio e il seguente mettiamo che nella cartella _video ci sia un video pippo.avi_che con questo script viene copiato nella destianzione correttamente .

    Ma domani io decido che pippo.avi non mi interess__a più e lo cancello sul backup però rimane!!

    Ovvio. E' una copia, non una sincronizzazione.


    come posso far in modo che i file che cancello vengano anche cancellati dalla destinazione ?

    grazie a tutti

    Mi puoi togliere una curiosità?
    A che serve un backup che cancella i file che non si trovano più nella cartella originale?
    Se cancelli per errore un file che ti serve e te ne accorgi solo dopo aver fatto il backup, da dove lo recuperi (shadow copy a parte)?

    A questo punto non lo chiamerei più "backup" ma "mirroring"...

    giovedì 7 febbraio 2013 17:48
  • Siamo costretti a complicarci la vita per colpa di quelli del sw che non riescono mai ha fare una cosa giusta :-))

    @echo off
    title=%~n0
    
    set r=robocopy
    set d=i:\bckport
    set o=  /e /r:1 /w:1 /np 
    echo Backup Cominciato...
    (
    %r% D:\documenti  %d%\documenti   %o%
    %r% D:\Immagini   %d%\immagini    %o%
    %r% D:\video      %d%\video       %o%
    %r% D:\musica     %d%\musica      %o%
    %r% D:\Software   %d%\software    %o%
    %r% D:\scansioni  %d%\scansioni   %o%
    ) >"%d%\_%~n0.log"
    
    echo Backup Completato!
     
    @pause

    Robocopy  è enormemente più potente di un xcopy e rimane irraggiungibile anche per powershell o vbscript ... 

    Ecco un esempio in powershell che usa sempre robocopy

    $dir_list=@("D:\documenti","D:\Immagini","D:\video","D:\musica","D:\Software","D:\scansioni")
    $opt= "/e /w:1 /r:1 /np"
    $des="i:\bckport"
    $des="c:\temp"
    cls
    $dir_list | % { 
     & robocopy "$_ $des\" + $_.substring(3 , $_.length -3) + $opt >>"$des\$($MyInvocation.MyCommand.name).log"
     }
    

    Se vuoi un "mirroring" usa l'opzione /MIR ma ATTENZIONE: come ha scritto Skywalker "Se cancelli per erroreun file che ti serve e te ne accorgi solo dopo aver fatto il backup, da dove lo recuperi ..."

     

    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI

    venerdì 8 febbraio 2013 00:07
    Moderatore
  • Massimiliano Racanati ha pensato forte :

    ciao ho creato uno script di backup per il mio pc

    lo condivido puo tornarvi utile:

    ----------------------------------------------------------------------------

    xcopy /c /d /e /h /i /r /y D:\documenti  i:\bckport\documenti
    xcopy /c /d /e /h /i /r /y D:\Immagini   i:\bckport\immagini
    xcopy /c /d /e /h /i /r /y D:\video      i:\bckport\video
    xcopy /c /d /e /h /i /r /y D:\musica     i:\bckport\musica
    xcopy /c /d /e /h /i /r /y D:\Software   i:\bckport\software
    xcopy /c /d /e /h /i /r /y D:\scansioni  i:\bckport\scansioni

    echo Backup Completato!

    @pause

    -----------------------------------------------------------------------------------

    il Problema mio e il seguente mettiamo che nella cartella _video ci sia un video pippo.avi_che con questo script viene copiato nella destianzione correttamente .

    Ma domani io decido che pippo.avi non mi interess__a più e lo cancello sul backup però rimane!!

    Ovvio. E' una copia, non una sincronizzazione.


    come posso far in modo che i file che cancello vengano anche cancellati dalla destinazione ?

    grazie a tutti

    Mi puoi togliere una curiosità?
    A che serve un backup che cancella i file che non si trovano più nella cartella originale?
    Se cancelli per errore un file che ti serve e te ne accorgi solo dopo aver fatto il backup, da dove lo recuperi (shadow copy a parte)?

    A questo punto non lo chiamerei più "backup" ma "mirroring"...

     E vero la tua osservazione e corretta sul discorso mirroring ci può stare gergalmente chiamarlo così

    per quanto riguarda cancellare un file per sbaglio ho il recovery sul cestino :-)

    venerdì 8 febbraio 2013 10:30
  • Siamo costretti a complicarci la vita per colpa di quelli del sw che non riescono mai ha fare una cosa giusta :-))

    @echo off
    title=%~n0
    
    set r=robocopy
    set d=i:\bckport
    set o=  /e /r:1 /w:1 /np 
    echo Backup Cominciato...
    (
    %r% D:\documenti  %d%\documenti   %o%
    %r% D:\Immagini   %d%\immagini    %o%
    %r% D:\video      %d%\video       %o%
    %r% D:\musica     %d%\musica      %o%
    %r% D:\Software   %d%\software    %o%
    %r% D:\scansioni  %d%\scansioni   %o%
    ) >"%d%\_%~n0.log"
    
    echo Backup Completato!
     
    @pause

    Robocopy  è enormemente più potente di un xcopy e rimane irraggiungibile anche per powershell o vbscript ... 

    Ecco un esempio in powershell che usa sempre robocopy

    $dir_list=@("D:\documenti","D:\Immagini","D:\video","D:\musica","D:\Software","D:\scansioni")
    $opt= "/e /w:1 /r:1 /np"
    $des="i:\bckport"
    $des="c:\temp"
    cls
    $dir_list | % { 
     & robocopy "$_ $des\" + $_.substring(3 , $_.length -3) + $opt >>"$des\$($MyInvocation.MyCommand.name).log"
     }
    

    Se vuoi un "mirroring" usa l'opzione /MIR ma ATTENZIONE: come ha scritto Skywalker "Se cancelli per erroreun file che ti serve e te ne accorgi solo dopo aver fatto il backup, da dove lo recuperi ..."

     

    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI

     Grandissimo complimenti :-D l'opzione /mir  dove devo metterla ??

    grazie sbalordito :-)

    venerdì 8 febbraio 2013 10:34
  •  devi cambiare le opzioni da /e /w:1 /r:1 /np     a    /mir /w:1 /r:1 /np

    Es.

    robocopy D:\documenti  i:\bckport\documenti /w:1 /r:1 /mir /log:i:\bckport\_backup.log

    Prova a vedere QUI troverai tanti script e intanto che ci sei dai una valutazione ai miei!! Sono sicuro ti complicheranno la vita :-)

    Ciao e grazie

    Gas  


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI

    venerdì 8 febbraio 2013 11:05
    Moderatore
  • Grazie mille

    in effetti sto studiando powerschell sono alla fine del primo capito e bello tosto

    nella precisione questo :

    http://www.unilibro.it/libro/wilson-ed/windows-powershell-la-guida-completa-al-linguaggio-di-script-per-l-amministrazione-dei-sistemi-windows-con-cd-rom/9788861141834

    spero di capirlo a volte leggo dei paragrafi e dico èèèèèèèèèèèèèèèèèè !! ahahaahaha

    venerdì 8 febbraio 2013 12:38
  • Dopo dura riflessione, Massimiliano Racanati ha scritto :



    per quanto riguarda cancellare un file per sbaglio ho il recovery sul cestino :-)

    Spero che tu abbia anche un altro backup esterno (oltre al mirror).
    Non per fare l'uccellaccio del malaugurio, ma la maggior parte dei dati li si perde quando si scassa un disco fisso. In questo caso, mi sa che il recovery dal cestino te lo scordi...

    venerdì 8 febbraio 2013 15:42
  • Ecco come l'ho implementato alla fine e schedulato ogni 2 giorni

    il prossimo passo lo faccio in Powerschell

    @echo off
    title=%~n0

    set r=robocopy
    set d=i:\bckport
    set o=  /e /r:1 /w:1 /np
    set c=del /f/q/s
    echo Adesso cancello il vecchio backup...Attendere...!!!
    (
    %c% %d%
    )
    echo ho cancellato tutto ...!!

    echo Backup Cominciato...
    (
    %r% D:\documenti          %d%\documenti   %o%
    %r% D:\Immagini            %d%\immagini    %o%
    %r% D:\video               %d%\video       %o%
    %r% D:\musica             %d%\musica      %o%
    %r% D:\Software            %d%\software    %o%
    %r% D:\scansioni          %d%\scansioni   %o%
    %r% C:\Users\Massimo\Desktop     %d%\Desktop     %o%
    ) >"%d%\_%~n0.log"

    echo Backup Completato!
     
    @pause

    Grazie A tutti per la collaborazione

    :-)

    martedì 26 febbraio 2013 20:38
  • Ecco come l'ho implementato alla fine e schedulato ogni 2 giorni

    il prossimo passo lo faccio in Powershell

    Purtroppo per la copia/sincro dei files/folders, robocopy rimane imbattibile, mentre powershell è molto debole in questo caso specifico, l'abbiamento vincente è robocopy + powershell per l'analisi del file di log generato.

    echo Adesso cancello il vecchio backup...Attendere...!!!
    echo anche tutti i Folders  non solo i files!!!
    ( set empty=%d%\_%random%_ mkdir "%empty%" robocopy "%empty%" "%d%" /MIR /w:0 /r:0 ) echo ho cancellato tutto ...!!

    Ciao alla prossima

    Gas


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI


    martedì 26 febbraio 2013 22:09
    Moderatore