Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/12/2007, à 11:59

tekman54000

[Resolu] Analyse de dossiers/fichiers modifiés

Bonjour,

je suis en train de coder un petit script et je voudrais savoir s'il etait possible de faire un script/application qui permette de surveiller les modifications des fichiers dans un repertoire donné. SI un tel logiciel n'existe pas, quelqu'un aurait il une piste pour debuter et peut etre le faire soi meme.

Je voudrais faire ne gros de la modification incrémentale telle que le fait amarok avec le scanner de dossier pour nourrir la base de données musicale.

Merci par avance.

Dernière modification par tekman54000 (Le 15/12/2007, à 18:03)


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#2 Le 14/12/2007, à 19:28

tekman54000

Re : [Resolu] Analyse de dossiers/fichiers modifiés

up?!


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#3 Le 14/12/2007, à 23:45

alexduf

Re : [Resolu] Analyse de dossiers/fichiers modifiés

c'est un script qui tourne en permanence et qui vérifie si quelque chose a bougé pendant son exécution ?
ou c'est un script qui sauvegarde l'état d'un répertoire à  un instant T et qui vérifie a la seconde exécution si il a changé depuis?

L'approche n'est pas la même, il faudrait que tu expliques un peu plus la finalité de ton script...

Hors ligne

#4 Le 15/12/2007, à 00:19

tekman54000

Re : [Resolu] Analyse de dossiers/fichiers modifiés

je veux faire un

c'est un script qui tourne en permanence et qui vérifie si quelque chose a bougé pendant son exécution

Le probleme que je rencontre est plutot d'ordre technique, je ne vois pas comment faire pour que ce script ne fasse quelque chose que lorsque l'arborescence d'un repertoire X ou qu'un fichier Y a ete ajouté/modifié/supprimé. Ce script serait l'equivalent de l'analyse des repertoires musicaux d'amarok par exemple. Je cherche a optimiser le nombre d'execution de ce script afin de le lancer uniquement lorsque c'est necessaire et non plus avec une tache cron par exemple.
Aurais tu une idée?


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#5 Le 15/12/2007, à 01:13

alexduf

Re : [Resolu] Analyse de dossiers/fichiers modifiés

Hop !

un premier exemple à  customiser selon tes besoins :

#/bin/bash

# definition des repertoires et fichiers de travail

# repertoire à  scanner
REPERTOIRE=/home/toto/bidule

# fichier de référence
ETAT1=/tmp/etat1

# fichier de l'état actuel
ETAT2=/tmp/etat2

# différences trouvées entre les deux fichiers
DIFF=/tmp/etatdiff

# fichiers ajoutés entre ETAT1 et ETAT2
AJOUTES=/tmp/etatajoutes

# fichiers supprimés entre ETAT1 et ETAT2
SUPPRIMES=/tmp/etatsupprimes

# liste des fichiers initiaux que l'on trie
find ${REPERTOIRE} | sort > ${ETAT1}

# cette boucle infinie sert à  surveiller indéfiniment les fichiers
while true; do
	
	# liste des fichier à  un instant T que l'on trie
	find ${REPERTOIRE} | sort > ${ETAT2}
	
	# recuperation des differences
	diff ${ETAT1} ${ETAT2} | grep "^[<|>]" > ${DIFF}

	# fichiers ajoutés
	grep ">" ${DIFF} > ${AJOUTES}
	if [ $(wc -l ${AJOUTES} | awk '{printf($1);}') -ne 0 ]; then
		# traitement à  faire sur les fichiers ajoutés
		# ici c'est un affichage, à  toi d'en faire ce que tu
		# veux
		echo "Fichiers ajoutés :"
		cat ${AJOUTES} | cut -c3-
	fi

	# fichiers supprimés
	grep "<" ${DIFF} > ${SUPPRIMES}
	if [ $(wc -l ${SUPPRIMES} | awk '{printf($1);}') -ne 0 ]; then
		# traitement à  faire sur les fichiers supprimes
		# ici c'est un affichage, à  toi d'en faire ce que tu
		# veux
		echo "Fichiers supprimes :"
		cat ${SUPPRIMES} | cut -c3-
	fi

	# on passe le dernier etat comme etat de réference
	mv ${ETAT2} ${ETAT1}

	# on attend quand même deux secondes avant la prochaine vérification
	# on est pas des bourrins quand même
	sleep 2
done

n'hésite pas à  me poser des questions si les commentaires sont pas clairs.


il suffit de lancer le script, puis avec l'explorateur de fichiers, aller trifouiller deux ou trois trucs et constater ce que t'affiche le script en quasi temps-réel.

bon courage !

Dernière modification par alexduf (Le 15/12/2007, à 01:15)

Hors ligne

#6 Le 15/12/2007, à 17:27

tekman54000

Re : [Resolu] Analyse de dossiers/fichiers modifiés

re,

alors je viens de tester ton script il m'arche parfaitement, le seul petit prob concerne la modification de fichier (je sais je suis exigent...lol) en fait lorsqu'un fichier texte est modifié celui ci n'est pas repertorié dans la liste des modifications... et je ne vois pas trop comment faire pour ajouter ceci

Merci beaucoup pour le mal que tu t'ai donné


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#7 Le 15/12/2007, à 18:00

alexduf

Re : [Resolu] Analyse de dossiers/fichiers modifiés

là  c'est tout de suite vachement plus chiant à  faire ^_^

il faudrait comparer les date de modif des fichiers... Mais là  j'ai pas la motiv'

Hors ligne

#8 Le 15/12/2007, à 18:02

tekman54000

Re : [Resolu] Analyse de dossiers/fichiers modifiés

lol c'est pas grave je vois deja ou en venir, en fait faut faire un petit demon qui gere ttes les modifications. Je vais galérer a adapter car jsui plutot un TCSHman qu'un BASHman lol mais bon c'est pas la mort merci beaucoup smile


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#9 Le 21/02/2009, à 11:07

seblem

Re : [Resolu] Analyse de dossiers/fichiers modifiés

Bonjour tekman54000, tu as largement dépassé le délai imparti, il est l'heure maintenant de rendre ta copie!!
Plus d'un an ont passé, je pense avoir été très tolérant...
Bon sinon du nouveau ? J'ai lu que l'API inotify permettait de travailler dans ce sens mais c'est pas mon domaine.
Peut être existe t'il une application s'appuyant dessus ?

Seblem

Hors ligne

#10 Le 21/02/2009, à 16:22

Totor

Re : [Resolu] Analyse de dossiers/fichiers modifiés

voici ce qui répondrait à ce besoin :
inotify-tools


-- Lucid Lynx --

Hors ligne

#11 Le 21/02/2009, à 18:16

seblem

Re : [Resolu] Analyse de dossiers/fichiers modifiés

Tout ceci est fort bien intéressant! Cependant cela reste tout même réservé à un public averti affectant à C autre chose que la troisième lettre de l'alphabet. J'ai fait qq tests et il y a du gros potentiel. J'en reviens tout de même à mon besoin premier, une interface surveillant les modifications apportées au contenu d'un répertoire. J'ose imaginer qu'un Dev aura la bonne idée de se reposer sur cette API.

Merci

Seblem

Hors ligne