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

Scripts/Batch Discussion :

Créer un fichier qui fasse une sauvegarde et un fichier de log [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut Créer un fichier qui fasse une sauvegarde et un fichier de log
    Bonjour.
    Depuis le temps, il fallait bien que je m'y mette.
    J'ai passé une journée à regarder les tuto et infos sur le web pour faire mon premier .bat.
    Ce .bat a pour vocation première de faire la sauvegarde de ma BDD mysql, ça ça marche.
    Je souhaite aussi choisir les noms que je donne à mes dump et fichiers de log, ça ça marche.

    Je souhaite faire un fichier de log qui me donne l'heure de début et de fin de fabrication de la sauvegarde.
    Là, je ne sais pas si mes infos sont fiables.
    Je souhaiterai aussi avoir comme info la base que j'ai choisi et si la sauvegarde s'est bien déroulée.

    Je souhaite pouvoir choisir le nom de la bdd et que le batch en prenne une par défaut si je ne fais pas de choix.
    Ca, ça ne marche pas, j'ai commenté ce que j'ai commencé à faire.

    Il y a beaucoup de remarque dans mon fichier car j'ai peur d'oublié ce que je crois avoir compris.

    Lorsque je lance le batch et que je valide les 2 infos qui me sont demandés, le programme ne se termine que si je fais des entrées...Quelle boulette ai-je fait ?

    Je vous remercie pour toutes les remarques que vous aurez le temps de me faire.

    Code batch : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    SET JOUR=%date:~-10,2%
    SET ANNEE=%date:~-4%
    SET MOIS=%date:~-7,2%
    SET HEURE=%time:~0,2%
    SET MINUTE=%time:~3,2%
    SET SECOND=%time:~-5,2%
     
     
    if "%time:~0,1%"==" " SET HEURE=0%HEURE:~1,1%
     
    REM demander a l'utilisateur d'entrer un nom de fichier qui sera préfixé
    SET /p nomDump=Entrez un prefixe au nom du Dump:
    SET /p nomBDD=Nom de la base a sauvegarder:
     
     
    REM if "%nomBDD%" == "t" SET nomBDD = touslesport
    REM else SET nomBDD = %nomDump%
     
     
    SET REPERTOIR1=E:\Projet20171008\DUMP
    SET REPERTOIR2=E:\Projet20171008\LOG
    SET REPERTOIR3=E:\Projet20171008\BAT
     
    SET FICHIER=%nomDump%Sauvegarde_du_%JOUR%_%MOIS%_%ANNEE%_A_%HEURE%_%MINUTE%
    SET FICHIERdump=%FICHIER%.sql
    SET FICHIERlog="%FICHIER%.log"
    SET LOG_FILE= %REPERTOIR2%\%FICHIERlog%
     
    if not exist "%REPERTOIR1%" md "%REPERTOIR1%"
     
    REM log
    REM set %REPERTOIR2%\%FICHIER%"
    CALL %REPERTOIR3%\CreationDump.bat >> %LOG_FILE%
     
    REM debut de la création du DUMP
    echo Debut de la sauvegarde de la base %nomBDD% - %JOUR%/%MOIS%/%ANNEE% %HEURE%:%MINUTE% REM >> %LOG_FILE%
    echo %time:~-5,2% : %time:~3,2% : %time:~-5,2%
    REM Adresse complete BDD : E:\Projet20171008\EasyPHP-DevServer-13.1VC9\binaries\mysql\data\touslesport.V2 
    E:\Projet20171008\EasyPHP-DevServer-13.1VC9\binaries\mysql\bin\mysqldump -u root --opt %nomBDD% -h localhost >  %REPERTOIR1%\%FICHIERdump%
     
    REM fin de la création du DUMP
    echo Fin de la sauvegarde de la base %nomBDD% - %JOUR%/%MOIS%/%ANNEE% %HEURE%:%MINUTE% REM >> %LOG_FILE%
    echo %time:~-5,2% : %time:~3,2% : %time:~-5,2%
    REM garder la fenetre DOS ouverte
    REM pause

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Bonjour.
    De manière empirique, j'arrive presque à ce que je veux.

    Il n'y a qu'une chose que je n'arrive pas à faire.
    Demander à l'utilisateur de saisir le disque sur le quel se trouve les répertoires DUMP et LOG et mysql (mysqldump).
    Ce que j'ai commenté ne fonctionne pas.
    Je sais que c'est une mauvaise idée de demander à l'utilisateur de choisir le lecteur mais dans mon cas c'est pratique et surtout je pense que c'est possible et donc j'aimerai y arriver.

    Merci de votre aide.

    Code batch : 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
    37
    38
    39
    40
    41
    42
     
    SET JOUR=%date:~-10,2%
    SET ANNEE=%date:~-4%
    SET MOIS=%date:~-7,2%
    SET HEURE=%time:~0,2%
    SET MINUTE=%time:~3,2%
    SET SECOND=%time:~-5,2%
     
     
    if "%time:~0,1%"==" " SET HEURE=0%HEURE:~1,1%
     
    SET /p nomDump=Entrez un prefixe au nom du Dump:
    SET /p nomBDD=Nom de la base a sauvegarder:
    REM SET /p lecteur = lettre pour le lecteur de la cle : 
     
    REM SET REPERTOIR1=%lecteur%:\Projet20171008\DUMP
    REM SET REPERTOIR2=%lecteur%:\Projet20171008\LOG
     
    REM if "%nomBDD%" == "t" SET nomBDD = touslesport
    REM else SET nomBDD = %nomDump%
     
     
    SET REPERTOIR1=F:\Projet20171008\DUMP
    SET REPERTOIR2=F:\Projet20171008\LOG
     
    SET FICHIER=%nomDump%Sauvegarde_du_%JOUR%_%MOIS%_%ANNEE%_A_%HEURE%_%MINUTE%
    SET FICHIERdump=%FICHIER%.sql
    SET FICHIERlog="%FICHIER%.log"
    SET LOG_FILE= %REPERTOIR2%\%FICHIERlog%
     
    if not exist "%REPERTOIR1%" md "%REPERTOIR1%"
     
    REM debut de la création du DUMP
    echo Debut de la sauvegarde de la base %nomBDD% - %JOUR%/%MOIS%/%ANNEE% %HEURE%:%MINUTE%:%SECOND% REM >> %LOG_FILE%
    echo %time:~-5,2% : %time:~3,2% : %time:~-5,2%
     
    REM %lecteur%:\Projet20171008\EasyPHP-DevServer-13.1VC9\binaries\mysql\bin\mysqldump -u root --opt %nomBDD% -h localhost >  %REPERTOIR1%\%FICHIERdump%
    F:\Projet20171008\EasyPHP-DevServer-13.1VC9\binaries\mysql\bin\mysqldump -u root --opt %nomBDD% -h localhost >  %REPERTOIR1%\%FICHIERdump%
     
    REM fin de la création du DUMP
    echo Fin de la sauvegarde de la base %nomBDD% - %JOUR%/%MOIS%/%ANNEE% %HEURE%:%MINUTE%:%SECOND% REM >> %LOG_FILE%
    echo %time:~-5,2% : %time:~3,2% : %time:~-5,2%

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Points : 336
    Points
    336
    Par défaut
    Bonjour.
    Je n'en reviens pas.
    Il ne fallait pas mettre d'espace de par et d'autre du = pour attribuer une valeur à ma variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET /p lecteur = lettre pour le lecteur de la cle :
    doit s'écrire ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET /p lecteur=lettre pour le lecteur de la cle :

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/01/2016, 12h39
  2. Détecter les changements dans un fichier qui alimente une table
    Par yacinechaouche dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/06/2008, 18h56
  3. commande find: trouver les fichiers qui contiennent une chaine de caractère
    Par hammag dans le forum Administration système
    Réponses: 3
    Dernier message: 18/05/2008, 14h19
  4. Récupérer le nom du fichier qui appelle une fonction
    Par DeezerD dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2007, 15h37
  5. Réponses: 15
    Dernier message: 26/03/2006, 13h10

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