Script de sauvegarde en batch

Résolu/Fermé
Dikmas Messages postés 376 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 3 mai 2012 - 28 oct. 2008 à 15:39
 red - 24 nov. 2010 à 12:15
Bonjour,


Alors voila. Je souhaite sauvegarder une base mysql. à ce niveau je n'ai pas de soucis. j'ai rentré mes commandes dans mon fichier batch et j'ai fait une tâche planifié. Le script écrit même le résultat de la sauvegarde dans un fichier log.

Ce que j'aimerais faire et que je ne vois pas du tout comment faire c'est :

pour chaque jours de la semaine lui associer un numéro
lundi --> 1
mardi --> 2
mercredi --> 3
jeudi --> 4
vendredi --> 5
samedi --> 6
dimanche --> pas de sauvegarde, donc pas de numéro.

Donc, on lance la sauvegarde la semaine 1
lundi --> création du fichier "sauv_lundi.sql"
mardi --> création du fichier "sauv_mardi.sql"
mercredi --> création du fichier "sauv_mercredi.sql"
jeudi --> création du fichier "sauv_jeudi.sql"
vendredi --> création du fichier "sauv_vendredi.sql"
samedi --> création du fichier "sauv_samedi.sql"

Les sauvegardes se sont toutes bien faites sans soucis.
Passons maintenant à la semaine 2.

lundi --> la nouvelle sauvegarde écrase le fichier "sauv_lundi.sql" créé lors de la semaine 1
mardi --> etc.

J'espère avoir été clair sur le principe.

merci d'avance.
A voir également:

28 réponses

Dikmas Messages postés 376 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 3 mai 2012 63
29 oct. 2008 à 11:34
J'ai un nouveau problème

j'ai donc mis mes scripts sur un serveur, pour sauvegarder les vrais bases à sauvegarder et j'ai comme erreur :

the system cannot find the path specified
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
29 oct. 2008 à 11:39
#include <stdio.h>
#include <time.h>
int main ()
{ FILE*pfile;
char* jour[7]={"dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"};
pfile=fopen("c:\\TON_CHEMIN\\jour.txt","w");
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
fwrite (jour[timeinfo->tm_wday] , 1 ,strlen(jour[timeinfo->tm_wday])*sizeof(char) , pfile );
fclose(pfile);
return 0;
}
change le pfile=fopen("D:\\backupmysql \\jour.txt","w");
recompile l'exe et ca devrait etre bon...enfin j'espere!!
0
Dikmas Messages postés 376 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 3 mai 2012 63
29 oct. 2008 à 12:51
voici ma nouvelle architecture

D:\
------backup
----------sauv_macad.bat
----------jour.exe
----------<mes_fichiers_de_sauvegarde.sql>

voici mon fichier "jour.exe"

#include <stdio.h>
#include <time.h>
#include <string.h>

int main ()
{
FILE*pfile;
char* jour[7]={"dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"};
pfile=fopen("D:\\backup\\jour.txt","w");
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
fwrite (jour[timeinfo->tm_wday] , 1 ,strlen(jour[timeinfo->tm_wday])*sizeof(char) , pfile );
fclose(pfile);
return 0;
}


et voici mon fichier "sauv_macad.bat"

@ECHO OFF

@ECHO Vous avez choisis de sauvegarder la base menagerie

D:
cd\backup
SET CHEMIN = D:\backup\
SET BASE = macad
SET REUSSI=Sauvegarde de %BASE% reussi
SET ECHEC=Sauvegarde de %BASE% echouee
jour.exe
for /F %%a in (jour.txt) do set jour=sauv_%%a.sql

mysqldump -u root -proot macad > backup\%JOUR%

@if %ERRORLEVEL% EQU 0 echo %REUSSI% le %date% >> %CHEMIN%log.txt
@if %ERRORLEVEL% GEQ 1 echo %ECHEC% le %date% code erreur : %ERRORLEVEL% >> %CHEMIN%log.txt

del /Q jour.txt



rem bmail -s <serveur smtp> -t dikmas.che@wanadoo.fr -f sauvegarde@itc-alstom.com -h -a "Sauvegarde de <serveur>" -b "%ECHEC% le %DATE_today% a %TIME_today% code erreur : %ERRORLEVEL%"


pause


Avec ceci, j'ai l'erreur que j'ai dis au message précédent.
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
29 oct. 2008 à 12:56
mysqldump -u root -proot macad > backup\%JOUR%
Tu n'as pas besoin de backup\%jour% juste %jour%
mysqldump -u root -proot macad >%JOUR%
tu es deja dans le repertoire backup...
sinon il faudrait que tu aies:
d:
--backup
----backup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dikmas Messages postés 376 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 3 mai 2012 63
29 oct. 2008 à 13:02
ah bah oui, effectivement...

merci bien une fois de plus. Comme quoi, on fait souvent des erreurs d'inattention en programmation :/

Merci encore ^^

Je met en résolu, je n'ai plus de problème pour le moment.
0
moustif94000 Messages postés 40 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 16 juillet 2012 2
17 févr. 2009 à 10:25
Je souhaiterais faire un script d'envoie de notifcation de sauvegarde

Le pricipe et de copié mon fichier .log de ntbackup vers un fichier txt puis ensuite me l'envoyé par mail via un utilitaire qui s'appel blat
Neanmoins je ne m'en sors pas dutout

Voici mon script j'ai un problème avec l'envoie de mail via blat avec mon script



@echo

set Sender=backup@mondomaine.fr
set Receiver=technicien@mondomaine.fr
set Cc=administrateur@mondomaine.fr
set Subject="Test Rapport de sauvegarde"
set Host=mondomaine.fr
set Sourcefolder="C:\Documents and Settings\technicien.mondomaine\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data"
REM Sourcefolder = dossier d'origine du fichier *.log créé par NTBackup. (Backup01, Backup 02, Backup03...)
set Contentfolder="c:\logntbackup"
REM Contentfolder dossier ou est copié le fichier avant l'envoi par mail.

echo F | xcopy /d %Sourcefolder%\*.log %Contentfolder%\report.txt
REM J'effectue une copie du fichier source (*.log) dans le dossier cible (*.log ou *.txt par exemple)

blat -install %Host% %Sender%
REM installation de blat
blat %sourceFolder%\*.log -subject %Subject% -to %Receiver% -cc %Cc% -attach %ContentFolder%\report.txt
REM Utilisation de blat pour l'envoi du fichier report.txt par mail.


Le message d'erreur qui m'affiche est :


unknown error code 123 when trying to open C:\Documents and Settings\technicien.mondomaine\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\*.
log
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
21 févr. 2009 à 09:49
Salut,
Je connais pas blat mais à mon avis, tu dois faire une boucle:
cd %sourceFolder%
for /F "tokens=1-4 delims= " %%a in ('dir *.log') do if exist %%d blat %%d -subject %Subject% -to %Receiver% -cc %Cc% -attach %ContentFolder%\report.txt
toute la boucle for sur la meme ligne....le souci est que si tu as 100 fichiers log, tu recevras 100 mails....
Si tu en veux qu'un, je pense qu'en faisant un fichier temporaire, tu devrais pouvoir t'en sortir!!!
J'espere ca pourra t'aider!!
@+
0
bonjour j'aimerai aussi faire la meme chose mais moi je voulais créer un batch pour faire un sauvegarde planifié d'une base de données informix

pour montrer les etapes je voulais exporter la base de données informix vers un répértoire sous unix ensuite créer un batch pour automatisée la sauvegarde chaque jour

c'est urgent et merci d'avance
0