Besoin d'aide pour un batch (wbadmin, mkdir,)

phoenixot Messages postés 11 Statut Membre -  
kkmach Messages postés 21 Statut Membre -
Bonjour,

Je vais essayé d'être le plus clair possible,

J'ai un script qui me permet de sauvegarder mon serveur sur un partage réseau tous les week-end :

wbadmin start backup -allCritical -include:d: -backupTarget:\\Monserveur\Sauvegarde\ -quiet


(D'ailleurs si vous avez des remarques a propos de celui-ci n'hésiter pas)

Maintenant dans l'idéal j'aimerai combiner avec ce script :
Un batch qui me crée un dossier a la date du jour pour y mettre ma sauvegarde
Et un autre pour supprimé le dossier obsolète de la semaine dernière

J'ai déjà fait quelques recherches et trouver une ligne de commande me permettant de créer un dossier a la date du jour :

md %date:~6,4%%date:~3,2%%date:~0,2%


Merci d'avance.

5 réponses

  1. phoenixot Messages postés 11 Statut Membre
     
    up
    0
  2. phoenixot Messages postés 11 Statut Membre
     
    Personnes n'a un semblant de solution donc ?
    0
  3. kkmach Messages postés 21 Statut Membre 9
     
    Salut & Fraternité.
    Ok, pas trop compliqué, mais il faut connaitre un peu ton OS?
    Ou puis-je t'envoyer le fichier batch et quelques expliqures?
    Je peux l'afficher dans 1 post, mais alors attention à la recopie, un espace en trop
    c'est vite fait....
    Le .bat est fait pour mon OS (XP r2), donc il te faudra changer certains chemins pour acceder à certaines commandes de ton systeme.
    De plus, afin de garder 1 trace de l'ancienne sauvegarde, il te faudra creer une variable d'environnement du nom de: LAST_SAVE_DIR
    Sais-tu faire cela ?
    Tu dois l'initialiser avec la valeur: aucun
    ("aucun", pas d'espace avant/apres, et en minuscule.)
    a+

    0
  4. phoenixot Messages postés 11 Statut Membre
     
    Salut et merci pour t'a réponse,

    Je travail sous Windows serveur 2008 r2 Standard en 64bit.

    Pour le batch je ne vois pas d'autres solutions qu'un message privé . . .

    Sinon, je ne mettais pas encore poser la question de : "garder 1 trace de l'ancienne sauvegarde"
    Je savais que j'allais avoir besoin de variable bien que je n'en sache pas plus a se sujet, je vais d'abord voir le batch que tu vas m'envoyer et me poser les questions après.

    Peace !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kkmach Messages postés 21 Statut Membre 9
     
    Bon
    Ne m'en veut pas, je ne connais pas ton niveau, donc je fais comme si tu étais
    novice.

    a) Hypothese: tu utilises le repertoire sur le serveur
    \\Monserveur\Sauvegarde\
    comme repertoire de travail. Les répertoires des différentes sauvegardes seront dessous (au format AAAAMMJJ)
    Dans ce repertoire de base, il faudra y placer le .bat et le fichier oui.in que je vais t'expliquer comment le generer.

    b)le fichier bat:
    Copie le texte entre les 2 lignes: >>>>>-----------
    (sans les 2 lignes)
    dans un fichier nommé bkup.bat que tu place dans ton repertoire de base des sauvegarde.

    Il faudra que tu adaptes les 2 lignes placée après le bloc de remarques commencant par: REM >>>>>
    c'est a dire:
    ligne1: c:\windows\system32\attrib -r *.*
    ligne2: c:\windows\system32\attrib -r %LAST_SAVE_DIR%

    Tu dois mettre le bon chemin (celui de ton disque ou est placé le fichier: Attrib.exe
    tu ne changes que "c:\windows\system32\" tu laisses la fin
    Si c'est le même chemin, of course tu changes rien.
    Pourquoi Attrib? car l'ancienne archive peut être en "lecture seule" et on ne pourrait pas la detruire. Ici (-r) on enleve cette protection.
    Idem pour l'ancien repertoire, il se peut qu'il soit en "lecture seule", surtout si tu n'est pas dans une session avec des priviléges "Admin".
    le texte a copier:
    COPIER DEPUIS LIGNE SUIVANTE --------------------------------------------
    @echo off

    goto debut

    :help
    echo:
    echo ----------------------------
    echo bkup v 1.00
    echo ----------------------------
    echo:
    echo Syntaxe: bkup nom_fichier_sauvegarde
    echo:
    echo nom_fichier_sauvegarde est le nom du dernier fichier de sauvegarde genere.
    echo:
    echo exemple: bkup last_save_file.sav
    goto fin

    rem --------------------------------------------------
    :erreur
    echo:
    echo Erreur: fichier %1 introuvable dans le repertoire: %cd%
    echo:
    goto fin

    rem ---------------- ** point d'entree ** -----------------------
    :debut
    if "%1"=="?" goto help
    if "%1"=="-?" goto help
    if "%1"=="/?" goto help

    echo:
    REM le fichier existe'il ?
    If not exist %1 goto erreur
    REM oui,
    echo Creation du repertoire: %date:~6,4%%date:~3,2%%date:~0,2%
    set SAVE_DIR=%date:~6,4%%date:~3,2%%date:~0,2%
    md %SAVE_DIR%
    echo:
    echo Sauvegarde version courante dans %SAVE_DIR%
    copy %1 %SAVE_DIR%
    echo:
    rem une vieille sauvegarde existe?
    if "%LAST_SAVE_DIR%"=="aucun" goto sauve
    if "%LAST_SAVE_DIR%"=="" goto sauve
    echo:
    rem Oui
    echo: Destruction ancienne sauvegarde: %LAST_SAVE_DIR%
    cd %LAST_SAVE_DIR%
    REM >>
    REM >> ici il faut donner le chemin ou trouver: Attrib.exe
    REM >> remplacer: "c:\windows\system32" par le chemin sur ton disque
    REM >> attrib permet de tomber l'attribut "lecture seule"
    REM >> au cas ou l'archive soit protégée, sinon le commande 'del' va echouer
    REM >>
    c:\windows\system32\attrib -r *.*
    del *.* < ..\oui.in
    cd ..
    c:\windows\system32\attrib -r %LAST_SAVE_DIR%
    rd %LAST_SAVE_DIR%
    echo:

    :sauve
    rem Memo du nouveau repertoire pour
    rem destruction la prochaine fois
    set LAST_SAVE_DIR=%SAVE_DIR%

    echo:
    echo termine.

    :fin
    echo:
    JUSQU'ICI -------------------------------------------------------------

    La commande "wbadmin" place le fichier de sauvegarde sur le reseau
    (\\Monserveur\Sauvegarde\) mais je ne sais pas qel nom elle lui donne,
    Donc tu dois fournir le nom de cette sauvegarde quand tu executes le .bat
    (avec l'extension et le chemin complet

    bkup nom_fichier_sauvegarde

    si tu executes bkup -?, il t'affichera de l'aide pour te rappeller la syntaxe de la commande.

    c) le fichier oui.in ??
    Il est necessaire car MDSOS ne détruit jamais un répertoire non vide.
    Donc l'ancien repertoire faut le vider avant destruction.
    C'est la commande del *.* (delete all files)
    Or del *.* va te demander confirmation de la destruction
    Le fichier oui.in, simule ta réponse positive, il contient le caractere 'o' (oui) et 1 retour chariot.
    Comment le créer:
    Ouvre 1 session MSDOS.
    Il faut te placer sur le repertoire du serveur: \\Monserveur\Sauvegarde\
    On va creer le fichier oui.in
    Tu tapes:
    copy con oui.in
    o
    <enter>
    <enter>
    <F6>

    expliqures:
    o c'est le caractere o (de Odile)
    <enter> c'est l'appui sur la touche [return]
    tape 2 fois
    <F6> c'est l'appui sur la touche de fonction: F6
    MDSOS va t'afficher: "1 fichier copié" à l'ecran
    c'est OK.

    d) variable d'environnement:
    Dans le panneau de config
    tu choisi 'system', la page a onglet s'ouvre, tu ouvres l'onglet 'avancé',
    en bas (chez moi c'est en bas), il y'a un bouton libéllé 'variables d'environnement', tu cliques.
    Il y'a plusieurs boites-liste, choisi celle qui est 'systeme' (dans le genre), plutot qu'utilisateur. Tu choisis 'nouveau', une boite desaise s'ouvre.
    Pour le nom de la variable tu tapes: LAST_SAVE_DIR
    (sans espace, en majuscules)
    Dans le champ valeur, tu tapes: aucun
    (en minuscules, no space)
    Tu valides, tu fermes tout ca

    e) limites:
    Si tu executes le batch, 2 fois dans la MEME journee, cela peut etre problemetik
    (j'ai pas testé le comportement dans ce cas......)

    Cela fait beaucoup d'un coup, rappelle si probleme
    Dans cette version comme je ne connnais pas le nom du fichier de sauvegarde generé par "wbadmin", t'est obligé de lancer le batch toi même, on pourra le modifier/adapter si le nom est constant.

    ok a+

    De la couleur, il y'en aura toujours par dessus le noir et le sombre du monde.
    0
    1. kkmach Messages postés 21 Statut Membre 9
       
      Si lorsque tu veux faire 1 sauvegarde tu aimerais garder l'ancienne, avant de lancer le batch
      à l'invite MSDOS tu tapes:
      SET LAST_SAVE_DIR=aucun [enter]
      après tu lances le batch normalement. mais dans ce cas là, l'ancienne sauvegarde ne sera pas détruite.
      0