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

Langage Perl Discussion :

[langage] comment écouter l'accès d'un disque dur


Sujet :

Langage Perl

  1. #1
    Invité1
    Invité(e)
    Par défaut [langage] comment écouter l'accès d'un disque dur
    Bonjour, j'aimerais savoir si il est possible en PERL "d'écouter" un disque dur et ainsi de savoir quelles modifications ont eu lieu sur ce dit disque-dur, par exemple de savoir si un fichier a été modifié, crée ou déplacé.

    Merci d'avance, et longue vie au PERL.

  2. #2
    Membre habitué Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    personnellement j'avait fait un truc comme ça pour scanner un dossier partagé
    je gérais un hashage MD5 de tous les fichiers d'un dossier dans un base
    et périodiquement je venais vérifier
    si le hashage avait changé, cela voulait dire que le fichier avait été modifié
    tu peux aussi vérifier la date de modification d'un fichier avec la commande stat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ($dev_source,
              $ino_source,
              $mode_source,
              $nlink_source,
              $uid_source,
              $gid_source,
              $rdev_source,
              $size_source,
              $atime_source,
              $mtime_source,
              $ctime_source,
              $blksize_source,
              $blocks_source) = stat($fichier);
    Si un ricard vaut un steak, j'ai bien bouffé une vache hier soir !
    L'art de poser les bonnes questions dans les forums afin de ne pas passer pour un

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    pour surveiller un repertoire, si tu es sous linux tu peux utilise inotify :
    http://search.cpan.org/~mlehmann/Linux-Inotify2/

    tu peux egalement surveiller toi meme tes fichier en utilisant la fonction stat(), ou la signature de fichiers avec par exemple Digest::MD5
    Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.

  4. #4
    Invité1
    Invité(e)
    Par défaut windows pas linux
    En fait le problème est plus vaste mais je l'avais un peu racourcis.

    En fait le but de ce projet est de pouvoir installer des logiciels sur windows à distance, c'est à dire que l'on a une serie d'adresse IP de PC où est lancé un serveur en perl.

    Donc le client décide que 3 pcs (par exemple) subissent cette installation, pour cela il effectue l'installation sur SON pc client et va renseigner aux serveurs (qui sont les trois pc distants) quelles modifications du disque dur ont été faites.

    Voilà qu'intervient mon problème : j'avais pensé à une solution :

    "scanner" le disque dur client AVANT l'installation et APRES l'installation en mémorisant les chemins de TS les fichiers et repertoire du disque (ainsi que la date et heure de derniere modification), ainsi j'aurai put connaitre les modifications effectuées et ainsi les repercuter sur les serveurs.

    Seulement j'ai peur que cette opération de "scan" soit longue, voilà pourquoi il m'aurait été interressant de posséder un "listener" (honte à moi programmeur java, je voulais dire écouteur) qui m'aurai dit les modifications effectuées sur mon disque dur pendant l'installation sur le client.

    Voilà je ne sais pas si j'ai été très clair, je suis en phase d'étude de ce projet, et je ne voudrais pas partir tête baissée vers une idée saugrenue.

    En tout cas merci pour les réponses.

  5. #5
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Quand tu parles d'installation, tu parles d'un programme que tu as créé ou n'importe quel programme ? sous Windows, la plupart du temps, il ne suffit pas de copier les fichiers pour un programme, il y a des DLL à enregistrer, des enregistrements à ajouter dans la base de registre, et même parfois des services à démarrer...

    Pourquoi ne pas partir dans le sens inverse de ce que tu fais actuellement ? plutot que de scanner le PC avant et après (ce qui veut donc dire que tu sais à quel moment un programme est installé), disons que le PC envoie le programme d'installation au serveur et le serveur le copie et le lance sur les autres postes...

    A mon avis, ce serait plus propre, reste le problème de l'automatisation des étapes de l'installation.

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  6. #6
    Invité1
    Invité(e)
    Par défaut le problème est là : l'automatisation
    Merci pour ton aide, en fait ma première pensée c'était tournée vers l'automatisation, en ayant parlé à mon professeur de système/perl, il m'a déconseillé d'envisager cette solution.

    Le truc c'est que l'on sais exactement quand le logiciel est installé sur le client, et c'est tout juste après que l'on décide de repercuter les changements sur des ordinateurs distants.

    En tout cas je prends note de ses remarques, merci de votre aide, je vais bosser encore un peu la dessus

  7. #7
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Citation Envoyé par stemlaur
    Le truc c'est que l'on sais exactement quand le logiciel est installé sur le client, et c'est tout juste après que l'on décide de repercuter les changements sur des ordinateurs distants.

    Ce qui veut donc dire que si tu veux connaitre la structure du disque avant installation, tu vas être obligé de scanner le disque à intervalle réguliers ! Le problème est que le scan d'un disque peut-être très très long selon ce qui est installé dessus... Sans compter que l'ordi peut disposer de plusieurs disques/partitions.

    Si ton programme part du principe que tous les ordinateurs ont une structure identique, attention à ce que ce soit bien le cas ! (sur un de mes ordis, j'ai la partition Windows sur F:\, et le dossier Documents & Settings sur D:\, alors que sur d'autres, tout est sur C:\)

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/05/2010, 20h41
  2. comment ouvrir une fenetre qui donne l'arborescence du disque dur ?
    Par blueLight dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 01/10/2009, 23h26
  3. [langage] comment on fait un if(expressioin rationelle)
    Par chtiboss dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2004, 16h04
  4. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09
  5. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 16h33

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