


Python implémente la surveillance en temps réel des fichiers
Lorsque les exigences de stabilité de l'entreprise sont relativement élevées, afin de détecter les problèmes à temps, l'exploitation et la maintenance doivent parfois analyser les journaux d'application en temps réel. Lorsqu'une certaine condition est remplie, une alarme est émise immédiatement au lieu d'attendre passivement. pour que des problèmes surviennent. Pour le résoudre, par exemple, vous devez surveiller les $request_time et $upstream_response_time de nginx, analyser les requêtes les plus chronophages, puis améliorer le code. À ce stade, vous devez analyser les journaux. en temps réel. Si vous trouvez de longues déclarations, vous les alarmerez et leur rappellerez. Bien entendu, c'est l'un des scénarios d'application qui peut également être appliqué à n'importe quel endroit où les fichiers doivent être jugés ou analysés. . Aujourd'hui, nous allons voir comment utiliser Python pour surveiller des fichiers en temps réel. Je vais vous donner trois exemples de méthodes :
La première méthode :
.C'est le plus simple et le plus facile à comprendre, car tout le monde sait qu'il existe une commande tail sous Linux, vous pouvez donc directement utiliser la fonction Popen() pour appeler cette commande afin d'obtenir le résultat. Le code est le suivant :
logfile='access.log' command='tail -f ‘+logfile+'|grep “timeout”‘ popen=subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True) while True: line=popen.stdout.readline().strip() print line
Deuxième type :
Utilisez Python pour faire fonctionner les fichiers. Utilisez tell() et seek(). méthodes de l'objet fichier pour obtenir respectivement la position actuelle du fichier et la position vers laquelle se déplacer. Le code est le suivant :
import time file = open(‘access.log') while 1: where = file.tell() line = file.readline() if not line: time.sleep(1) file.seek(where) else: print line,
. La troisième méthode :
Utilisez le rendement de Python pour implémenter une fonction génératrice, puis appelez la fonction génératrice, de sorte que lorsque le fichier journal change, une nouvelle ligne soit imprimée. Le code est le suivant :
import time def follow(thefile): thefile.seek(0,2) while True: line = thefile.readline() if not line: time.sleep(0.1) continue yield line if __name__ == ‘__main__': logfile = open(“access-log”,”r”) loglines = follow(logfile) for line in loglines: print line,
Enfin, expliquez l'utilisation de la fonction seek(). Cette fonction reçoit 2 paramètres : file.seek(off, whence=0), éloigne les marqueurs d'opération (pointeurs de fichier) du fichier, les nombres positifs se déplacent vers la direction de fin et les nombres négatifs se déplacent vers la direction de début. Si le paramètre whence est défini, la position de départ définie par whence doit prévaloir 0 représente le début, 1 représente la position actuelle et 2 représente la position de fin du fichier.
Les trois méthodes courantes ci-dessus peuvent être implémentées selon votre propre logique métier.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun, et j'espère également que tout le monde s'abonnera au site Web PHP chinois.
Pour plus d'articles liés à la surveillance des fichiers en temps réel par Python, veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Utilisation de Python dans Linux Terminal ...

Fastapi ...
