#1 Le 29/12/2009, à 04:17
- mel4
[résolu] surveiller les modifications d'un fichier
Bonsoir,
Je cherche à créer un script qui permettra de :
1- exporter un fichier .bib en .html (ca j'ai trouvé)
2- modifier une ligne dans le fichier (aussi trouvé)
3- déplacer ce fichier dans un autre répertoire (ok aussi)
4- qui sera exécuté lors du changement du fichier .bib (modification de son poids et/ou date, pas d'importance)
C'est cette étape qui me bloque. Je ne trouve pas comment vérifier si le fichier a été modifié et ensuite lancer le script d'export.
Existe-t-il une commande qui fasse cela? Ou une combinaison de diff et cron?
Je précise que j'en suis à mes premières armes en termes de script sh...
Merci de l'aide,
Mélanie
Dernière modification par mel4 (Le 30/12/2009, à 06:22)
Hors ligne
#2 Le 29/12/2009, à 04:49
- sputnick
Re : [résolu] surveiller les modifications d'un fichier
C'est cette étape qui me bloque. Je ne trouve pas comment vérifier si le fichier a été modifié et ensuite lancer le script d'export.
utilise inotify ( inotifywait )
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#3 Le 30/12/2009, à 06:22
- mel4
Re : [résolu] surveiller les modifications d'un fichier
Merci pour la piste! inotify semble bien trop compliqué pour moi, mais j'ai découvert "incrontab" qui fait exactement ce que je veux, c'est-à-dire qu'il surveille un fichier/dossier et déclenche le script s'il y a eu modification.
Merci!
Hors ligne
#4 Le 30/12/2009, à 15:37
- sputnick
Re : [résolu] surveiller les modifications d'un fichier
Compliqué ? Les exemples du man sont clairs comme de l'eau de roche !? oO
while inotifywait -e create /tmp/test; do
echo "Quelque chose a bougé chef, on sort le bouzin ? ( On va tous les niquer... )"
done
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#5 Le 30/12/2009, à 15:43
- nesthib
Re : [résolu] surveiller les modifications d'un fichier
@sputnick : petite question.
j'ai fait des tests pour surveiller la modification d'un fichier avec donc l'option "-e modify" puis je bidouille mon fichier avec vi sur un autre terminal. Problème j'ai le retour IGNORED au lieu de MODIFY. Ceci est dû au fait que vi ne modifie pas directement le fichier (pas comme un echo abc >>fichier par ex.) mais travaille sur un fichier temporaire puis remplace le fichier d'origine lors de l'enregistrement. Ainsi dans le processus le fichier d'intérêt n'est pas modifié au sens strict mais supprimé et recréé.
As-tu une idée simple pour contourner ce problème (avec inotify j'entends) pour voir si un fichier est modifié (au sens utilisateur, pas au sens strict système de fichier) quelque soit la méthode de modification?
Dernière modification par nesthib (Le 30/12/2009, à 15:45)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#6 Le 30/12/2009, à 18:31
- sputnick
Re : [résolu] surveiller les modifications d'un fichier
ben tu surveille un repertoire et pas un fichier, donc ca devrais suffire ( /tmp/test de mon exemple est un dossier ).
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#7 Le 30/12/2009, à 18:44
- nesthib
Re : [résolu] surveiller les modifications d'un fichier
pareil… bon je chercherai ça plus tard
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#8 Le 30/12/2009, à 22:30
- Totor
Re : [résolu] surveiller les modifications d'un fichier
bonsoir,
j'ai déjà été confronté à ce soucis : pour le contourner j'ai surveillé un fichier portant le même nom mais ayant en plus l'extension .tmp
-- Lucid Lynx --
Hors ligne