Sauvegardes Automatisées via Gestionnaire de tâches

Vous avez réalisé un script utile, faites en profiter la communauté !

Modérateur : WIN32-[GG]

jeefreeze
Batcheur occasionnel
Messages : 8
Enregistré le : 12 août 2009 13:05

Sauvegardes Automatisées via Gestionnaire de tâches

Message par jeefreeze »

Bonjour,
Je suis nouveau et totalement neu-neu dans le domaine de la programmation.
Mais voila ... Mon soucis du moment est d'assurer la sauvegarde de mes données pro (Ce que le service informatique à du mal à nous garantir)
J'ai donc eu l'idée d'écrire un fichier de sauvegarde et de le lancer automatiquement la nuit ..... Et en farfouillant je suis tombé sur le language batch (Les vieux souvenirs de mes débuts en informatique sont revenus)..... Mais ecrire un fichier Batch :o .... Comment on fait :?: ... J'ai jamais fais :(
Voila donc 3 jours que je farfouille sur les forums et que je teste dans mon coin les fonctions (J'ai un peu retrouvé mais premières amours du basic sur AMSTRAD CPC6128)..... Et voilà ce que j'ai pondu

Un petit programme qui sauvegarde ce que vous voulez (la destination pour moi est le réseau de mon entreprise et/ou mon lecteur externe USB), qui à la fin, vous indique l'heure de début de la sauvegarde, l'heure de fin de la suavegarde et la duréee de la sauvegarde ...... Code ci-dessous

Code : Tout sélectionner

@echo off
echo         **********************************************************
echo         *                                                        *
echo         *       Supposons que nous voulions sauvegarder          *
echo         *        les repertoires "Travail" et "Perso"            *
echo         *               du disque dur ci-dessous                 *
echo         *                                                        *
echo         *   Poste de travail                                     *
echo         *    :                                                   *
echo         *    +-Sys (C:)                                          *
echo         *      :                                                 *
echo         *      +-Mes_fichiers                                    *
echo         *      : :                                               *
echo         *      : +-Travail                                       *
echo         *      :                                                 *
echo         *      +-Perso                                           *
echo         *                                                        *
echo         *              sur le disque externe USB E:              *
echo         *          Architecture de la meme facon que C:          *
echo         *                                                        *
echo         *   Poste de travail                                     *
echo         *    :                                                   *
echo         *    +-USB_Sauvegarde (E:)                               *
echo         *      :                                                 *
echo         *      +-Mes_fichiers                                    *
echo         *      : :                                               *
echo         *      : +-Travail                                       *
echo         *      :                                                 *
echo         *      +-Perso                                           *
echo         *                                                        *
echo         *   /!\ Repertoires avec accents = pas pris en comptes   *
echo         *  Le sript ci-dessous devra être adapté en fonction de  *
echo         *  vos fichiers sources et votre lecteur de destination  *
echo         *                                                        *
echo         **********************************************************
ECHO.
Echo Debut de la routine
ECHO.
ECHO           *****************************************************
ECHO           *                                                   *
ECHO           *  SAUVEGARDE JOURNALIERE SUR SUPPORT USB EN COURS  *
ECHO           *                                                   *
ECHO           *****************************************************
ECHO.
REM -------- MEMORISATION ET DECOMPOSITON DE l'HEURE DE DEBUT ---------
set debut=%TIME%
set /a hd=%TIME:~0,2%*3600 
set /a md=%TIME:~3,2%*60 
set Sd=%TIME:~6,5%
set /a s1=hd+md+sd
REM -------- SAUVEGARDE DU REPERTOIRE TRAVAIL ---------
ECHO - SAUVEGARDE DU REPERTOIRE TRAVAIL EN COURS -
xcopy C:\Mes_fichiers\Travail\ E:\Mes_fichiers\Travail\ /Q /E /R /Y /I
ECHO - SAUVEGARDE DU REPERTOIRE TRAVAIL TERMINEE -
ECHO.
ECHO.
REM -------- SAUVEGARDE DU REPERTOIRE PERSO ---------
ECHO - SAUVEGARDE DU REPERTOIRE EN COURS -
xcopy C:\Perso\ E:\Perso\ /Q /E /R /Y /I
ECHO - SAUVEGARDE DU REPERTOIRE TERMINEE -
ECHO.
ECHO.
ECHO           *****************************************************
ECHO           *                                                   *
ECHO           *  SAUVEGARDE JOURNALIERE SUR SUPPORT USB TERMINEE  *
ECHO           *                                                   *
ECHO           *****************************************************
ECHO.
ECHO.
REM -------- MEMORISATION ET DECOMPOSITON DE L'HEURE DE FIN ---------
set fin=%TIME%
set /a hf=%TIME:~0,2%*3600 
set /a mf=%TIME:~3,2%*60 
set Sf=%TIME:~6,5%
set /a s2=hf+mf+sf
REM -------- CALCUL DE LA DUREE EN SECONDES ---------
set /a s3=s2-s1
rem ----- CONVERTION DUREE EN MINUTES ET SECONDES -----
set /a h1=s3/3600
set /a m1=(s3/60)-(h1*60)
set /a s4=s3-((h1*3600)+(m1*60))
REM -------- MISE EN PAGE RESULTAT ---------
Echo          +------------------------------------+
Echo          : Debut de sauvegarde : %debut%  :
Echo          +---------------------+--------------:
Echo          :  Fin de sauvegarde  : %fin%  :
Echo          +------------------------------------+
REM -------- INFORMATION SUR DUREE CONDITIONNEE -------
if %s3% leq 3599 goto minutes
:heures
Echo          : Temps de sauvegarde : %h1% h %m1% min %s4% s
goto fin
:minutes
if %s3% leq 59 goto secondes
Echo          : Temps de sauvegarde : %m1% min %s4% s
goto fin
:secondes
Echo          : Temps de sauvegarde : %s4% secondes
:fin
Echo          +------------------------------------+
pause
Bon y'a peut-être plus simple ... mais je n'ai pas réussi à faire autrement.

et voilà le résultat
Image

La pose finale à la fin de l'éxécution ne permet de contrôler le matin en arrivant que le script c'est bien lancé pendant la nuit.

Ah oui, comme je l'ai dit .... j'utilise le gestionnaire de tâches de Windows pour lancer au moment voulu mes ou mon petit programmes (Je fais des sauvegardes journalières et/ou hebdomadaire)
Vous trouverez ce gestionnaire dans le panneau de configuration ---> Démarrer>Panneau de configuration
Ouvrez le gestionnaire (Tâches Plannifiées ou scheduled tasks) et cliquez sur "Création d'une tâche planifiée" ... et suivre la procédure .... Pour info et/ou rappel le programme à lancer c'est le fichier .bat que vous avez crée

Cela existe déjà peut-être ... Mais je voulais juste faire partager le résultat de mes travaux, comme j'en ai l'habitude dans d'autres domaines
a+
Batch_Man
King Of Batch
Messages : 64
Enregistré le : 09 janv. 2009 00:01

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par Batch_Man »

Bienvenue !

Super c'est vraiment génial ;)

Merci :)
jeefreeze
Batcheur occasionnel
Messages : 8
Enregistré le : 12 août 2009 13:05

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par jeefreeze »

Salut Batch_Man

"Génial" ... tu trouves ?? ça fait plaisir

Cependant je dois pratiquer un peu plus et surtout comprendre (pour ne pas le cacher ça m'éclate un MAX :mrgreen: )
Parce ce que je vois des codes proposés dans tous les sens, et je n'y comprend strictement rien du tout ... :oops: le neuneu de base

J'envisage cependant une amélioration:
- Ecrire dans un fichier .txt le nom des fichiers sauvegardés (ayant comme nom la date de la sauvegarde ex: 13_08_09_USB_jour.txt*) ---- > Je ne sais absolument pas comment faire :(

Si tu as une idée simple et facilement compréhensible (ou expliquée pas à pas), je suis prenneur ... Ou même un début d'idée ;)

A+

* : nom du fichier avec la date et le type de sauvegarde effectuée (USB journalière, USB hebdomadaire, Réseau mensuel etc .....)
jeefreeze
Batcheur occasionnel
Messages : 8
Enregistré le : 12 août 2009 13:05

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par jeefreeze »

Bonjour,
J'ai compris certaines petites choses :D :D
J'ai déjà résolu le problème du nom de fichier en fonction de la date comme ceci:

Code : Tout sélectionner

@echo off
set jo=%date:~5,2%
set mo=%date:~8,2%
set an=%date:~11,4%
echo "Test" > C:\Documents and Settings\All Users\"Sauvegarde_USB_jour_du_%jo%-%mo%-%an%.txt"
echo Nous sommes le %jo% du %mo%ieme mois de l'annee %an%
pause
Le fichier du jour sera donc enregistré dans C:\Documents and Settings\All Users
Et on ecrit test dans ce fichier

Yépa !! première étape franchie !!
Reste à trouver le moyen d'écrire le nom des fichiers copiés par xcopy à la queu le-le dans ce fichier ... :(

A+
Bigfish
Batcheur débutant
Messages : 26
Enregistré le : 08 août 2008 18:46

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par Bigfish »

Salut,

pour noter les fichiers sauvegardés essaye ceci:

remplace:

REM -------- SAUVEGARDE DU REPERTOIRE TRAVAIL ---------
ECHO - SAUVEGARDE DU REPERTOIRE TRAVAIL EN COURS -
xcopy C:\Mes_fichiers\Travail\ E:\Mes_fichiers\Travail\ /Q /E /R /Y /I
ECHO - SAUVEGARDE DU REPERTOIRE TRAVAIL TERMINEE -

par:


REM -------- SAUVEGARDE DU REPERTOIRE TRAVAIL ---------
ECHO - SAUVEGARDE DU REPERTOIRE TRAVAIL EN COURS -
echo Sauvegarde du %date% à %time% >> C:\Documents and Settings\All User\Sauvegarde_USB.txt
for /f %%d in ('xcopy /C /E /R /Y /I C:\Mes_fichiers\Travail\ E:\Mes_fichiers\Travail\') do echo %%d >> C:\Documents and Settings\All User\Sauvegarde_USB.txt
ECHO - SAUVEGARDE DU REPERTOIRE TRAVAIL TERMINEE -

:| j'ai enlevé les balises code car certain "\" disparaisse :?: :?: :?:

A+
jeefreeze
Batcheur occasionnel
Messages : 8
Enregistré le : 12 août 2009 13:05

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par jeefreeze »

Bonjour,
je n'ai pas bien compris ton code, mais j'ai réussi de mon coté.
Voilà ce que j'ai fais (j'ai dû décomper l'accès au repertoire source parce que j'ai un renvoi : paramètre non valide .... trop long je suppose)

Code : Tout sélectionner

REM - MEMORISATION ET DECOMPOSITON DE LA DATE DU JOUR - 
set jo=%date:~5,2% 
set mo=%date:~8,2% 
set an=%date:~11,4% 

REM -------- SAUVEGARDE BASE LOTUS --------- 
ECHO - SAUVEGARDE ARCHIVES LOTUS EN COURS - 
cd\ 
C: 
cd Program Files 
cd lotus\notes 
cd data 
cd archive 
@xcopy *.* D:\Sauvegarde_Archives_LOTUS /E /R /Y /I /F > D:\Sauvegarde_Archives_LOTUS\"Sauvegarde_du_%jo%-%mo%-%an%.txt" 
echo Sauvegarde_du_%jo%-%mo%-%an%.txt creer 
ECHO - SAUVEGARDE ARCHIVES LOTUS TERMINEE - 
 
Dans le fichier txt il y a:
C:\Program Files\lotus\notes\data\archive\test_sauve.Tst -> D:\Sauvegarde_Archives_LOTUS\test_sauve.Tst
1 fichier(s) copi‚(s)
Bref c'est bien le fichier que j'avais mis dans la source pour le test ....

CA MARCHE !!! Merci pour ton aide

Je vais faire en sorte de trouver le moyen de comparer la source et la destination après copie ... avec un fichier de rapport si possible

Vous auriez-une idée ??
A+
Laddy
SuperBatcher
Messages : 190
Enregistré le : 04 juil. 2008 13:40

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par Laddy »

Bonjour
tu peux comparer le poids des deux
ou utiliser peut être la commande comp : http://www.batchclipboard.info/wiki/dok ... mande_comp
Envie de partager vos programmes :
Poster vos codes sur BatchClipboad.info
jeefreeze
Batcheur occasionnel
Messages : 8
Enregistré le : 12 août 2009 13:05

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par jeefreeze »

Salut,
Ben sauf erreur ou icompréhension de ma part ça marche pas dans mon cas
La commande comp (en spécifiant *.*) va bien comparer les fichiers dans le répertoire racine de la source et le répertoire racine de la destination. Mais s'il existe des sous répertoires la comparaison ne se fait pas .... à moins qu'il y est un communtateur à rajouter pour forcer cette comparaison

A+
Laddy
SuperBatcher
Messages : 190
Enregistré le : 04 juil. 2008 13:40

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par Laddy »

C'est à toi de faire une boucle pour lister le contenu des sous répertoires et faire les comparaisons.

Code : Tout sélectionner

Dir /b /AD Dossier racine
Envie de partager vos programmes :
Poster vos codes sur BatchClipboad.info
jeefreeze
Batcheur occasionnel
Messages : 8
Enregistré le : 12 août 2009 13:05

Re: Sauvegardes Automatisées via Gestionnaire de tâches

Message par jeefreeze »

:o Un peu lourd comme prcédure ... y'a pas plus simple ???

A+
Répondre