[R] Sauvegarde de plusieurs dossiers pour chaque jour

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
richie6700
Niveau 4
Niveau 4
Messages : 57
Enregistré le : ven. 21 janv. 2011 16:22
Status : Hors ligne

[R] Sauvegarde de plusieurs dossiers pour chaque jour

#1

Message par richie6700 »

Bonjour à vous, (sachez que je suis nouveau ici et je suis vraiment pas bon en script...)

Donc voici mon soucy...

Je souhaiterais créer un script me permettant de supprimer des repertoire selon le jour de la semaine. Je vous explique :
Chaque jour je sauvegarde sur un serveur les dossiers de plusieurs serveurs en créant a chaque fois un dossier parent du style D:\SERVEUR1\lundi si on est lundi, SERVEUR2\Lundi, SERVEUR1\mardi si on est mardi.... Je souhaiterais pouvoir supprimer lundi (par exemple)avant de lancer la sauvegarde.
Par exemple nous somme lundi 1/01. Je lance la sauvegarde dans D:\Save\Lundi, OK cool sa marche :D.
Une semaine après (le lundi 8/01). il existe déja le repertoir Lundi ce qui m'arrange pas, donc je souhaiterais lancer le script qui reconnait le jour et ainsi me supprime le contenu de Lundi avant de lancer la sauvegarde. Et ceci pour chaque jour de la semaine. (Lundi, Mardi, Mercredi, Jeudi)
Voici mon code
► Afficher le texte
Le fichier .INI contient ceci
► Afficher le texte
Est t-il possible de dire par exemple : Si on est Lundi rechercher dans param.ini tout ce qui contient lundi et de les supprimer????
Je pense qu'il faut utiliser "@wday@ mais je sais pas comment faire
J'espère que vous m'avez compris....

Et merci de votre aide!!
Modifié en dernier par richie6700 le lun. 24 janv. 2011 10:52, modifié 1 fois.
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#2

Message par FernandG »

Bonsoir,

Voici un exemple de code qui répond à votre demande :

Code : Tout sélectionner

Dim $jour, $path_backup = "D:\MyPathBackup"
Switch @WDAY
    Case 1
        $jour = "Dimanche"
    Case 2
        $jour = "Lundi"
    Case 3
        $jour = "Mardi"
    Case 4
        $jour = "Mercredi"
    Case 5
        $jour = "Jeudi"
    Case 6
        $jour = "Vendredi"
    Case 6
        $jour = "Samedi"
EndSwitch
If FileExists($path_backup & "\MonServeur1\" & $jour) Then DirRemove($path_backup & "\MonServeur1\" & $jour, 1)
ConsoleWrite('La suite de mon script de sauvegarde du serveur "MonServeur1".' & @CRLF)
If FileExists($path_backup & "\MonServeur2\" & $jour) Then DirRemove($path_backup & "\MonServeur2\" & $jour, 1)
ConsoleWrite('La suite de mon script de sauvegarde du serveur "MonServeur2".' & @CRLF)
Si vous avez plusieurs serveurs, je vous recommande de créer une function pour tout regrouper et éviter les répétitions.

Je n'ai pas abordé le fichier "ini", mais rien de bien compliqué. Sinon n'hésitez pas à nous soliciter de nouveau.

Bonne soirée.
AutoItement.
richie6700
Niveau 4
Niveau 4
Messages : 57
Enregistré le : ven. 21 janv. 2011 16:22
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#3

Message par richie6700 »

bonsoir et merci pour ta réponse,

Il est vraiment pas compliqué ton script c'est cool!!! J'ai quand même un soucis c'est que le script me supprime tous le contenu du dossier "D:\Backup" et c'est pas ce que je veux... parce que dans ce dossier j'ai aussi les autres jours et sachant que c'est des sauvegardes il ne faut pas les supprimé tous en même temps.

N'y a t-il pas un moyen de "vider" le dossier Lundi???

merci et bonne soirée
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#4

Message par Tlem »

Le script de FernandG ne devrait pas effacer le répertoire entier, peut être, avez-vous mal retranscrit le script ...

Voici une version un peut plus universelle du script de FernandG, car il vous suffira de modifier les deux premières variables pour que le script s'occupe du répertoire de sauvegarde de vos 5 ou 10 serveurs. ;)
Les deux lignes ConsoleWrite, ne sont là que pour afficher dans la console de Scite des infos sur le déroulement du script. :mrgreen:
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#5

Message par FernandG »

Bonjour,
richie6700 a écrit :Il est vraiment pas compliqué ton script ...
C'était le but de cet exemple, pour ensuite passer à du code plus sophistiqué, plus "propre" comme celui de Tlem :wink:

Néanmoins attention au DirRemove. Vous parlez de serveur, j'imagine que c'est dans un contexte professionnel !?! La préservation des données est primordiale. Donc, vérifiez l'existence des données à sauvegarder avant toute suppression par une condition ou autre. Personnellement, j'opterai pour un RoboCopy avec le commutateur /MIR. Ainsi pas besoin de supprimer le dossier, le dossier du jour se met à jour et les données sont préservées si la sauvegarde échoue pour quelque raison que ce soit.

Bonne journée.
AutoItement.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#6

Message par Tlem »

+1

Sinon, pour une utilisation en tout AutoIt, il faudrait dans un premier temps renommer le répertoire de destination (par exemple Lundi deviendrait Lundi_Old) puis lancer le backup, puis un petit contrôle de la taille du nouveau dossier de sauvegarde afin de contrôler que la sauvegarde c'est à peut prêt bien déroulée puis suppression de l'ancien dossier de sauvegarde.

Cela dit ce genre de manipulation est plutôt moyenne en temps et en sécurité. La solution de FenandG (Robocopy) est sans aucun doute la plus adaptée dans l'environnement décrit. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
richie6700
Niveau 4
Niveau 4
Messages : 57
Enregistré le : ven. 21 janv. 2011 16:22
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#7

Message par richie6700 »

Bonjour et encore merci pour vos conseil.

Pour répondre a ferndandG oui c'est pour un contexte professionnel, et la solution de robocopy est je crois la dernière solution malgré qu'elle soit facile, simple et rapide... mais étant donné que ce n'est pas moi le chef Informatique.... c'est pas moi qui prend les décision.. :D. Mais c'est une solution que je mettrais en avant étant donné que moi et les scripts sa fait 37.

Et pour Tlem je vous remercie pour le script que vous m'avez apporté. En effet, je pense que c'est moi qui a mal interprété le script de FernandG. Je vais voir le votre, en tout cas c'est cool de m'avoir aidé.

Je vous tiens au courant mes amis de toute façon.

@ plus et merci!!

AHHH J'ai oublié de dire... c'est sur un serveur distant que je souhaiterais mettre les sauvegarde et non en local... Je pense que si je monte un lecteur réseau sa passera nan???
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#8

Message par Tlem »

Peut importe.
Si vous avez accès à un répertoire de la forme \\Serveur\répertoire ou Z:\Répertoire ça fonctionnera de la même manière à partir du moment ou vous avez les droits de lecture/écriture.

Si lorsque vous parlez de distant, vous voulez dire sur un autre site, alors une solution de VPN sera préférable. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
richie6700
Niveau 4
Niveau 4
Messages : 57
Enregistré le : ven. 21 janv. 2011 16:22
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#9

Message par richie6700 »

OK OK OK!! c'est un serveur distant en local donc c'est bon!!! J'y accède grâce à son chemin UNC. Et maintenant peut être aurait vous une idée... Je suis toujours dans le même contexte avec les sauvegarde ect ect. Vous avez peut être vu que je ne parlai jamais du Vendredi...

Actuellement je fait aussi des sauvegarde complete le Vendredi ==> je le sauvegarde dans \\Monserveur1\save\Vendredi pour le serveur 1 ect ect comme pour les autres jours. Mon problème est le suivant :
Je souhaiterais que Vendredi soit renommer par Vendredi 1 le premier Vendredi du mois, par Vendredi 2 le 2ieme Vendredi du mois.... Comment pourrais je faire car le logiciel que j'utilise pour faire les sauvegarde (Cobian) ne permet pas de faire cela. Il permet juste de faire une sauvegarde tous les vendredi.

J'ai quelque idée du style copier le dossier Vendredi une fois la sauvegarde faite en vendredi 1 et ensuite supprimer Vendredi ect ect. Mais comment pourrais-je dire au script quel Vendredi je suis?
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#10

Message par bloodwolff »

moi je ferais un petit calcul en utilisant @MDAY
Compte skype : bloodwolfff
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#11

Message par FernandG »

Bonsoir,

Exact, bloodwolff vous a donné la réponse à travers @MDAY.

Voici un exemple de votre demande en me basant sur le code de Tlem
► Afficher le texte
Bonne soirée.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#12

Message par bloodwolff »

Au lieu de ton sélect je voyais plus un truc du genre

Code : Tout sélectionner

 Floor((@MDAY-1)/7)+1
Mais bon ;)
Compte skype : bloodwolfff
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#13

Message par FernandG »

Bien vu :wink:

Donc remplacer :oops: la section Select par :

Code : Tout sélectionner

    If @WDAY = 6 Then
        $jour = $Day[@WDAY] & " " & Floor((@MDAY - 1) / 7) + 1
    Else
        $jour = $Day[@WDAY]
    EndIf
Bonne soirée.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#14

Message par Tlem »

Ouaip. Ou encore comme ceci :
► Afficher le texte
:roll: :mrgreen: :lol:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#15

Message par FernandG »

Bonjour,

Je pense que le code est incomplet ... :wink:
Peux-tu nous mettre le For et les éventuelles lignes après ?!?! :mrgreen:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#16

Message par Tlem »

Arf, effectivement j'avais effacé par inadvertance la ligne du FOR. :mrgreen:

Code modifié.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#17

Message par FernandG »

Décalage horaire ? :wink:

Code : Tout sélectionner

Local $DayBackupPath = $BackupPath & "\" & $ServersName[$i] & "\" & $PrevWDay[@WDAY]

Code : Tout sélectionner

Local $DayBackupPath = D:\MyPathBackup\MonServeur1\7
:mrgreen:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#18

Message par Tlem »

Hummm oui effectivement.

Pas de décalage horaire, mais une soirée un peut trop arrosée ...

Code corrigé. :oops:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#19

Message par Tlem »

Bien que ce que j'ai fait fonctionne parfaitement, je me suis rendu compte que je me suis laissé entrainé dans un code complexe alors que la solution était bien plus simple.
Techniquement, richie6700 va avoir besoin de deux choses.
1 - Le nom du jour de la semaine au moment du lancement du script
2 - Le nom du jour précédent de la semaine au moment du lancement du script

C'est à dire, Vendredi (Jour du lancement du script) et Jeudi (Jour précédent).
Donc au lieu de partir dans des complications de calcul ou de tableau imbriqués, le plus simple est d'avoir deux tableaux de correspondance. :roll:
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [...] Sauvegarde de plusieurs dossiers pour chaque jour

#20

Message par FernandG »

Cela commence à devenir confus :shock:
Tlem a écrit :...
richie6700 va avoir besoin de deux choses. ...
2 - Le nom du jour précédent de la semaine au moment du lancement du script
...
Pourquoi faire ?

Le but n'est pas ; la sauvegarde du jour remplace la sauvegarde de la semaine dernière en J-7 ?
Puis des dossier différents pour les vendredi afin de les différencier en énième vendredi du mois ?

Ou j'y comprends plus rien ... :roll:
Répondre