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 :

Copie de secours


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 19
    Points
    19
    Par défaut Copie de secours
    Salut à tous,

    Je souhaite automatiser une copie de secours d'un répertoire partagé.

    Jusqu'à présent, lorsque je veux sauvegarder, je regarde par l'interface graphique si des fichiers de ce répertoire sont en cours d'utilisation, et si ce n'est pas le cas, je désactive temporairement le partage (pour éviter une interférence), je duplique mon répertoire, puis réactive le partage.

    Première question: n'y aurait-il tout simplement pas un soft qui ferait cela ?

    Je pensais aussi à ajouter une fonction d'envoi automatique de mail à la personne qui a "oublié" de se déconnecter...

    Au départ je pensais me faire un petit script CMD, mais cela me semble laborieux c'est l'occasion où jamais de me lancer dans Powershell...

    1) Ce que je viens de décrire est-il possible en Powershell ?
    2) Est-ce à ma portée ? je connais des langages objets, mais pas .NET ni Powershell... j'ai commencé à lire des trucs et à faire des essais, ça devrait aller, mais c'est peut-être trompeur
    3) tous les conseils sont les bienvenus

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par aggelon Voir le message
    tous les conseils sont les bienvenus
    Faut peut être y aller doucement au début.
    Si tu sais spécifier tes besoins, et sais comment les coder sous .net/PS, c'est peut être possible.
    Citation Envoyé par aggelon Voir le message
    Je pensais aussi à ajouter une fonction d'envoi automatique de mail à la personne qui a "oublié" de se déconnecter...
    Etudie déjà ce point.

    Ensuite cela dépend du temps que tu as pour réaliser ton script.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Bonjour,
    Citation Envoyé par aggelon Voir le message
    1) Ce que je viens de décrire est-il possible en Powershell ?
    Normalement, oui. Presque tout est possible avec powershell!

    Citation Envoyé par aggelon Voir le message
    2) Est-ce à ma portée ? je connais des langages objets, mais pas .NET ni Powershell... j'ai commencé à lire des trucs et à faire des essais, ça devrait aller, mais c'est peut-être trompeur
    Il y'a sûrement d'autres méthodes de faire, mais pour l'instant ce que je peux te proposer c'est d'utiliser les objets WMI du système. Un peu comme en VB (d'ailleurs as-tu regardé de ce côté? Si tu es plus à l'aise ça te sera plus facile.).

    Regardes du côté des objets Win32_Share (pour avoir la main sur le partage) et Win32_connectionshares (pour savoir les fichiers ouverts).

    La commande maitresse c'est

    get-help get-wmiobject

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Merci pour ces infos

    Pour l'instant, j'ai déjà fait un batch DOS qui fonctionne bien, mais il me reste quelques fonctionnalités que j'aimerais et qui me manquent :

    - envoyer un mail (ça, je pourrai le faire assez simplement en appelant une 'commande externe', genre avec un batch PS ou autre programme en ligne de commande, donc pas de soucis)...
    Par contre, l'objectif secondaire de ce mail (potentiellement forwardé en SMS) serait de contenir le nom des utilisateurs encore connectés afin de faciliter la téléintervention visant à manuellement les déconnecter... et là, je pense que je vais galèrer avec des grep pour extraire les infos utiles du log généré par psfile (c'est ce que j'ai utilisé pour voir si des fichiers sont ouverts par des users réseaux)
    - mon batch fait 5 tentatives de sauvegarde (espacées de 60 secondes) avant de déclarer forfait et d'envoyer le mail... j'aimerais qu'à la première tentative (en échec), le batch fasse appraître un message sur l'écran de l'utilisateur resté connecté (genre netsend ou équivalent), mais là, pareil, il va me falloir récupérer le nom de l'utilisateur...
    - il faut que j'ajoute un peu de verbose et que je log tout cela, mais ça, c'est facile ^_^

    Bref, finalement sans doute rien d'insurmontable, mais j'imagine que Powershell serait moins laborieux et plus élégant ?


    Pour info, rien de transcendant, mais voici déjà mon bout de script:
    Code : 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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    REM ------------------------------------------------------------------------------------------
    REM -                                        A ajouter                                       -
    REM -                                                                                        -
    REM -  envoi de mail à forwarder par SMS si impossible de sauvegarder                                      -
    REM -  créer log pour tracer les sauvegardes, incluant le psfile si 5e tentative             -
    REM -  faire afficher un message sur l'écran de la personne si échec à la première tentative -
    REM -                                                                                        -
    REM ------------------------------------------------------------------------------------------
    
    @ECHO OFF
    
    SET tentative=1
    
    :essaye_encore
    
    ECHO.
    ECHO *** Tentative %tentative% ***
    
    
    REM On met dans le fichier encours.txt la liste de tous les fichiers utilisés par le réseau
    c:\pstools\psfile > encours.txt
    
    REM On regarde, parmi ces fichiers, s'il y en a qui appartiennent à REPTEST
    SET Compt=0
    for /f "delims=" %%i in ('type "encours.txt" ^|findstr /i /r "reptest"') do set /a Compt+=1
    
    REM Pour information, on affiche combien il y a de fichiers REPTEST ouverts
    ECHO Il y a %Compt% fichiers REPTEST ouverts
    
    REM S'il y en a, alors on ne peut pas sauvegarder
    IF %Compt% NEQ 0 GOTO sauvegarde_impossible
    
    REM Sinon on sauvegarde
    ECHO La sauvegarde peut avoir lieue
    NET SHARE reptest /DELETE
    
    REM On horodate
    SET YYYYMMDD_HHMMSS=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
    
    C:
    CD C:\reptest
    XCOPY dossiers C:\DOSSIERS_%YYYYMMDD_HHMMSS% /E/C/I/H/J
    NET SHARE reptest=c:\reptest /GRANT:"Tout le monde",FULL
    
    ECHO %YYYYMMDD_HHMMSS% >> c:\sauve\reussies.txt
    
    GOTO fin
    
    :sauvegarde_impossible
    ECHO Impossible de sauvegarder: tentative %tentative%
    ECHO Attente de 60 secondes avant nouvel essai
    
    
    REM Attente de 1 minutes
    ping 127.0.0.1 -n 60 >nul 
    
    SET /a tentative+=1
    
    REM On essaye 5 fois maximum
    IF %tentative% LEQ 5 GOTO essaye_encore
    
    ECHO Impossible de sauvegarder, il reste %Compt% fichiers REPTEST ouverts
    ECHO.
    
    ECHO. >> c:\sauve\echecs.txt
    ECHO ************************************************************************************************ >> c:\sauve\echecs.txt
    ECHO. >> c:\sauve\echecs.txt
    ECHO ECHEC DE LA SAUVEGARDE %YYYYMMDD_HHMMSS% >> c:\sauve\echecs.txt
    ECHO. >> c:\sauve\echecs.txt
    MORE c:\sauve\encours.txt >> c:\sauve\echecs.txt
    ECHO. >> c:\sauve\echecs.txt
    ECHO ************************************************************************************************ >> c:\sauve\echecs.txt
    
    
    :fin
    REM PAUSE
    Toutes les critiques sont les bienvenues.

    Merci

Discussions similaires

  1. Copie de secours non controllée
    Par bendesarts dans le forum Word
    Réponses: 2
    Dernier message: 19/11/2013, 14h37
  2. Protéger une disquette contre la copie
    Par benzaza dans le forum Assembleur
    Réponses: 20
    Dernier message: 16/01/2005, 10h42
  3. Copier et afficher une copie d'ecran
    Par Bobx dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2002, 22h20
  4. Copie de fichier
    Par Bjorn dans le forum C
    Réponses: 4
    Dernier message: 11/06/2002, 15h23
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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