Je me demande si je peux écrire un script qui surveillera une modification dans un fichier et exécutera une action lorsque la modification est détectée.
Explication détaillée:
- OpenVPN écrit son état dans un fichier toutes les 1 minute.
- J'ai besoin d'analyser ce fichier d'état et de prendre des mesures.
- OpenVPN tronque le fichier d'état avant d'y écrire.
- J'ai essayé d'écrire dans un canal nommé, mais j'obtiens des erreurs indésirables (mais pas fatales) dans l'application lorsqu'elle ne parvient pas à tronquer le canal.
linux
bash
openvpn
shell-scripting
davidparks21
la source
la source
tail -f
est probablement le moyen le plus simple. Mais seulement pour l'ajout.Réponses:
Pas cher et sale:
Bouclez
stat -c %Y file
et agissez lorsque l'heure de modification change.Probablement mieux:
Utilisez le service inotify cron pour surveiller les événements de modification de fichier et exécuter votre action:
la source
Jetez un œil à incron [1] ou à d'autres éléments inotify pour déclencher l'exécution de votre script.
[1] http://inotify.aiken.cz/?section=incron&page=about&lang=en
la source
inotify serait la bonne façon de le faire. Des didacticiels sont donnés dans certaines éditions du magazine LinuxForYou pour cette même question.
la source
Ayez donc un script qui:
1) Vérifie l'heure de modification sur le fichier (avec stat)
2) Si l'heure de modification est plus récente que lors de la dernière vérification, elle a changé
3) Analysez-la et effectuez votre action
4) Sinon, dormez 1 minute puis relancez
la source
Manière rapide et sale:
la source