Mal wieder ein versuchter Zugriff auf Euer Know-How: ich wurde gefragt ob es ein Tool gibt mit dem ich den CPU-Verbrauch eines Programmes messen kann. Also nicht beobachtend wie top oder als Momentaufnahme (das geht glaube ich irgendwie mit ps), sondern mehr so wie mit time: ich starte mein Programm mit $toolname $programmname, und nach Abschluss erhalte ich eine Angabe darüber wie viel CPU-Last das Programm tatsächlich erzeugt hat.

Die Laufzeit mit time zu messen ist zwar ein Ansatz, allerdings ist die Ausgabe wohl stark davon abhängig was sonst auf meiner Maschine los ist.

Nach einer kleineren Google-Orgie bin ich um folgendes schlauer, vielleicht ist das sachdienlich: der Kernel misst CPU-Zeit in sogenannten Jiffies. Ein Jiffy ist auf einem System immer gleich lang (typischerweise 1/100 oder 1/250 Sekunde) und stellt praktisch eine Zeitscheibe dar die der Kernel auf einen Prozess verwendet. Man kann im /proc-Dateisystem nachsehen wie viele Jiffies ein Prozess bis dato verbraucht hat. Allerdings nur so lange der Prozess auch noch läuft.

Was ich suche ist also praktisch ein Tool das mir nach Beendigung meines Programms sagt wie viele Jiffies es gebraucht hat. Oder so. Gibt es das irgendwo fertig? Oder suche ich eigentlich was völlig anderes?

Sicher bin ich nicht der einzige der sowas braucht, auf die Schnelle habe ich aber keine Lösung gefunden:

Ich suche nach einem Tool. Dieses Tool sollte lokal über Verzeichnisse mit Webanwendungen wandern (also Serverseitig laufen, es geht mir nicht um Remote Exploits). Also viele Verzeichnisse, in denen mehrere Benutzer jeweils ihre Webanwendungen liegen haben. WordPress, Serendipity, Drupal, Typo3, phpMyAdmin, whatever…

Das Tool sollte wissen wie man herausfindet welche Version der Anwendung da liegt. Und es sollte herausfinden können welche Version die aktuelle wäre. Und dann bei Bedarf eine freundliche Nachricht erzeugen, dass da wohl mal ein Update anstehen könnte.

Gibt es sowas? Oder muss ich das selber basteln?

Dass es unter Linux den inotify-Mechanismus gibt mit dem man Aktionen basierend auf Events im Dateisystem auslösen kann wusste ich. Dass es mit dem Paket incron ein echt einfach zu bedienendes Tool gibt mit dem man das benutzen kann war mir neu. Die Bedienung ist genau wie beim traditionellen cron, nur dass Aktionen halt nicht basierend auf Uhrzeit ausgelöst werden sondern basierend auf Dateiänderungen.