IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[Batch] script de backup


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Points : 53
    Points
    53
    Par défaut [Batch] script de backup
    Salut tout le monde j'ai un petit soucis avec un script batch de sauvegarde.

    Je vous explique rapidemment le script, en fait j'utilise simplement une liste de xcopy avec les options pour qu'il compare les dates avant d'écraser les fichiers.
    Mais le problème, c'est que si par exemple dans les dossier originaux je déplace des fichiers dans d'autres dossier, et bien lorsque je vais éxécuter le script, ça va bien m'ajouter le fichier dans le même dossier de backup, mais ça va aussi laisser le fichier à l'endroit où il était au départ (par rapport à la sauvegarde précédente).
    Donc je voulais savoir si yavait moyen soit de demander à xcopy de virer les fichiers qui n'existe pas dans les dossiers originaux des dossiers de sauvegarde ou soit de trouver un moyen de tester tous les fichiers qui sont dans la sauvegarde s'ils existent aussi dans le dossier original. J'espère que j'ai été assez clair :s

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Juste un petit conseil(parce que je me suis retrouvé un jour à créer un script de backup DOS), ne serait il pas plus efficace d'utiliser un logiciel gérant les backups ? ( par exemple http://astase.com/produits/ultrabackup/2007/ )

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Hum j'en avais essayé qeuqlues uns, et j'avais pas trouvé mon bonheur, mais je vais tout de suite essayé celui que tu viens de mettre en lien.

  4. #4
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Bonjour

    En batch j'ai commencer quelque chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    @echo off
    
    
    setlocal enableDelayedExpansion
    
    set vrSource=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier
    set vrDestnt=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier (2)
    
    for /r "%vrSource%\" %%i in (*.*) do set vrChmNomFch=%%i& call :testFch
    goto fintestFch
    
    :testFch
    
    set vrChmNomFchCourt=%vrChmNomFch:!vrSource!=%
    
    echo %vrDestnt%\%vrChmNomFchCourt%
    
    :: if not exist "%vrDestnt%\%vrChmNomFchCourt%" del "%vrDestnt%\%vrChmNomFchCourt%"
    
    goto :eof
    
    :fintestFch
    
    endlocal 
    
    pause>nul
    Mais cette ligne ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set vrChmNomFchCourt=%vrChmNomFch:!vrSource!=%
    Si non j'ai fait ca en VBS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    dim vrSource, vrDestnt
    
    vrSource = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier"
    vrDestnt = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier (2)"
    
    
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set objNetwork = CreateObject("Wscript.Network")
    strUser = objNetwork.UserName
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    
    If oFSO.FolderExists(vrSource) Then
    
     For each oFl in  oFSO.GetFolder(vrSource).Files
    
      vrChmCourt = Replace(oFl.Path,vrSource & "\","") 
      vrChmDestn = vrDestnt & "\" & vrChmCourt
         
         If objFSO.FileExists(vrChmDestn) Then
         Else
            vrChmExit = vrChmExit & vbCrLf & vrChmDestn
            Set fsoFile = fso.getFile(oFl.Path)
             fsoFile.delete
         End If
    
     Next
    
    End If
    
    
    Wscript.Echo vrChmExit

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Ouais, j'ai testé deux programmes de backup, UltraBackup, j'ai pas trop aimé ya beaucoup trop d'options et de réglage pour ce que je veux faire et ça prends trop de ressources.
    Et j'ai aussi testé Cobian Backup, et là un peu pareil, et surtout ça me génère le même problème que mon script shell c'est qu'il ne fait pas des vraies copies miroir des dossiers.

    et sinon par rapport à ton script vbs, il faut quoi pour exécuter un script comme ça ? c'est pris en compte dans windows ?

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par GPZ{^_^} Voir le message

    et sinon par rapport à ton script vbs, il faut quoi pour exécuter un script comme ça ? c'est pris en compte dans windows ?
    Pour vbs tu met l'extension .vbs
    Pour batch tu met l'extension .bat
    et windows éxécutera tout seul

  7. #7
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    Pour vbs tu met l'extension .vbs et windows éxécutera tout seul
    A vérifier que le window scripting est activé si je ne me trompe pas ?

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Bah apparemment c'est activé chez moi, par contre ton script a pas marché, il a effacé les fichiers que javais dans le dossier source... en fait j'ai limpression que tu as peut etre inverser source et destination

  9. #9
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    alor inversse les variables

    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set vrSource=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier
    set vrDestnt=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier (2)
    tu fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set vrSource=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier (2)
    set vrDestnt=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Je me suis programme un script VBS pour comparer le contenu de deux dossier et supprimé les fichiers et/ou dossiers qui seraient dans le répertoire de destination mais pas dans le répertoire source. Je vais le coupler avec mon script shell et ça sera parfait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Dim rep1, rep2
    
    rep1 = "D:\Office10"
    rep2 = "D:\Nouveau dossier"
    
    Function VerifMiroir( repSource, repDest )
    
    	Dim oFSO, oFl, oFld
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    	
    	If (oFSO.FolderExists(repSource) and oFSO.FolderExists(repDest)) Then
    		
    		For each oFld in  oFSO.GetFolder(repDest).SubFolders 
    			
    			If oFSO.FolderExists( (repSource & "\" & oFld.Name) ) Then
    				VerifMiroir (repSource & "\" & oFld.Name), oFld
    			Else
    				oFld.Delete True
    			End If
    			
    		Next
    		
    		For each oFl in  oFSO.GetFolder(repDest).Files
    			
    			If not oFSO.FileExists( (repSource & "\" & oFl.Name) ) Then
    				oFl.Delete True
    			End If
    			
    		Next
    		
    	End If
    	
    End Function
    
    VerifMiroir rep1, rep2
    MsgBox "Traitement terminé"
    Merci pour le VBS en tout cas, je connaissais pas et ça peut être vachement utile

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    je ne connaisser pas la fonction:
    Plu pratique que mon script

    C'est vrai que c'est mieu que le batch le vbs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script de backup
    Par d10g3n dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 21/04/2009, 18h28
  2. Script de Backup FTP
    Par Are-no dans le forum VBScript
    Réponses: 2
    Dernier message: 16/01/2007, 20h04
  3. Script pour backup
    Par IDE dans le forum Administration système
    Réponses: 18
    Dernier message: 01/05/2006, 19h12
  4. [Batch] Scripts pour un systeme de backup sur serveur
    Par placebomuse dans le forum Windows
    Réponses: 3
    Dernier message: 22/04/2006, 15h28
  5. [GZip] script de backup compresser un repertoire en gzip
    Par venomelektro dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 27/10/2005, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo