Wie kann ich ein Shell-Skript schreiben, das die Ergebnisse in Echtzeit anzeigt?
So etwas wie der top
Befehl, der die Ergebnisse nach festgelegten Zeitintervallen aktualisiert.
Wie kann ich ein Shell-Skript schreiben, das die Ergebnisse in Echtzeit anzeigt?
So etwas wie der top
Befehl, der die Ergebnisse nach festgelegten Zeitintervallen aktualisiert.
curses
Schnittstelle ... aber ich denke, dies ist stärker eine Programmierfrage und gehört auf SOAntworten:
Es wäre hilfreich, wenn Sie viel genauer wissen würden, was Sie versuchen zu tun.
Hier ist ein äußerst vereinfachtes Beispiel:
quelle
Mit dem Befehl watch (1) können Sie Ihr Skript in regelmäßigen Abständen ausführen:
Dies wird
myscript.sh
alle 1 Sekunde ausgeführt und löscht den Bildschirm zwischen jedem Lauf und mit einem Zeitstempel in der Ecke. Sie können die-d
Option verwenden und es werden sogar Unterschiede in der Ausgabe pro Lauf hervorgehoben.quelle
watch
. Könnten Sie genauer sein? Welches Betriebssystem?Die meisten dieser Daten werden im Allgemeinen in den Grundelementen des virtuellen Dateisystems / proc verfügbar gemacht. Jeder Prozess hat einen Eintrag in / proc in einem Verzeichnis namens PID. / Proc / 5437 hätte also die Grundelemente für den 5437-Prozess. Wenn Sie die Grundelemente dort lesen und entsprechend analysieren, sind Sie dennoch nah an dem, was top tut.
Top funktioniert tatsächlich, indem bestimmte Funktionsaufrufe aufgerufen werden, die diese Informationen direkt aus dem Kernel extrahieren, anstatt sie aus Dateien abzurufen. Um dasselbe von bash aus zu tun, müssten Sie es entweder aus dem virtuellen Dateisystem / proc ziehen oder aus anderen Aufrufen wie z
ps
.In Echtzeit ist dies auf der Detailebene, die top bietet, nicht ganz machbar. Sie können die Zeit so fein schneiden, dass sie in Echtzeit zu sein scheint, aber Sie erhalten trotzdem Zeitscheiben.
quelle
Ähm, für den Fall, dass Sie die
top
Ausgabe länger betrachten und nicht nur prüfen möchten , ob ein Programm einwandfrei funktioniert , empfehle ich die Verwendung von htop .Es gibt Ihnen viele Echtzeitinformationen und ist einfacher zu steuern und zu verwalten.
Sie können das Layout der Ausgabe ändern, z. B. Balkendiagramme und Spalten.
quelle
top
verwendet Curses und liest das/proc
Dateisystemquelle
/proc
. Eine andere Möglichkeit, die Informationen abzurufen, ist sysctl (8) / sysctl (3).