Programme auf Linux bauen?

5 Antworten

Ich würde erstmal damit anfangen die gewünschten Daten abrufen zu können.

Dazu müsstest du die passende Schnittstelle vom Betriebssystem finden und integrieren. Vermutlich gibt es auch schon Libraries in verschiedenen Sprachen, die es für dich einfacher machen.

Vor allem unter Linux wird es vermutlich eine C Funktion sein, die dir die Werte übermittelt. Man kann in vielen Sprachen C Funktionen aufrufen, sodass du nicht zwingend C nutzen musst.

Dein gewünschtes Webfrontend wird höchstwahrscheinlich nicht direkt darauf zugreifen können, da es eben im Browser läuft. Es bietet sich ein Webserver mit z.B. REST API an. Statt REST API gibt es auch viele Alternative Lösungen.

Der Webserver (Backend) kannst du auch in anderen Programmiersprachen entwickeln. Eventuell würde auch JavaScript mit node.js gehen. Hier müsstest du dann die Funktion vom Betriebssystem integrieren.

Im Anschluss kannst du das Frontend bauen, wo du die Daten nach deinen Wünschen anzeigst.

Am besten schaust Du Dir zuerst mal die vielen Shell-Kommandos an, mit denen Dein Betriebssystem selber Auskunft über seine Parameter gibt (Stichwort bash). Diese Kommandos kannst Du auch aus jeder richtigen Skriptsprache (wie z.B. Perl oder Python) heraus aufrufen und aus den Antworten Dokumente im gewünschten Format erzeugen. Schau insbesondere auf die Möglichkeiten der POSIX-Schnittstelle.

Dann kannst Du mit wenigen Zeilen in der verwendeten Spriptsprache einen kleinen HTTP-Server erstellen, der Dir Dokumente mit den gewünschten Informationen an den Browser liefert.

Falls Du schließlich noch Informationen suchst, die die Shell Dir nicht gibt, könnte es vielleicht sinnvoll sein, mit C-Programmierung anzufangen und das Kernel-Interface anzusprechen. Nichts für Anfänger.

Solche Dinge gibt es natürlich bereits. Vielleicht magst Du Dir mal "Icinga" anschauen. Aber das ist für einen Rechner ziemlich oversized (um nicht zu sagen: Mit Seegeschützen auf Ameisen).

Aber das Konzept könnte Dir helfen: Du schreibst Dir eine Reihe kleiner Scripts (sogenannte "Checks"), die jeweils einen Betriebszustand erfassen. Dabei ist SNMP Dein Freund. Die Ergebnisse des Checks schreibst Du in eine Datenbanktabelle mit zwei Feldern: "Check_Name" und "Value". Beispiel:

insert into tabelle values (check_name, value);

Die kleinen Check-Scripts kannst Du per Crontab regelmäßig ausführen und Deine Tabelle wird sich alsbald füllen.

Dann schreibst Du Dein Frontend, beispielsweise in PHP und gibst die jeweils letzten Daten aus der Tabelle angehübscht aus.

Natürlich könnte man eine Datenreihe (jeweils die letzten Stunden, Tage Wochen, oder das laufende Jahr auch grafisch darstellen)

Es muss auch keine Datenbanktabelle sein, man könnte auch mit MQTT oder RRDTool experimentieren. Der Phantasie sind da kaum Grenzen gesetzt, warum nicht mit so einem Konzept auch eine kleine Wetterstation, die Heizung oder Aktienkurse überwachen und grafisch darstellen?

Hier noch ein Beispiel: Da steht ein Raspi mit 7" Display auf meinem Schreibtisch, der mir die Sachen hübsch ausgibt:

Bild zum Beitrag

Viel Erfolg!

 - (App, HTML, Linux)

Du brauchst ein Backend und ein Frontend. Die Sprachen, die du erwähnt hast, sind alle für das Frontend. Das Frontend hat die Aufgabe, Daten vom Backend zu bekommen, und anzuzeigen.

Der erste Schritt ist aber, die Daten ins Backend zu bekommen.

Dafür würde ich empfehlen, ein Programm zu schreiben, dass die Daten erst einmal in der Konsole ausgibt. In einem zweiten Schritt kannst du das zu einer Web-Applikation bzw. einer Electron-App umbauen.

Als erstes solltest du dir überlegen, welche Sprache du für das Backend nutzen willst. Persönlich würde ich Python empfehlen. Da gibt es z.B. Flask was die ganze Sache sehr vereinfacht. Dann musst du dir überlegen, welche Werte du auslesen willst. Entweder gibt es schon eine Bibliothek, die das sowieso kann, oder du musst die Werte aus Dateien auslesen. Typischer Weise liegt für jeden Wert den du brauchst irgendwo z.B. in /sys/devices/ eine Datei, wo genau dieser Wert drin steht. Den musst du dann einfach regelmäßig lesen, zu einem für Menschen lesbaren Wert umrechnen, und anzeigen.

Woher ich das weiß:Studium / Ausbildung – Informatik

Ahhh ja, perfekt. Ich weiß genau, was du suchst.

Ich empfehle dir:

  • Python
  • Die Library PyWebView (pip install pywebview)
  • Viel Spaß

Ich hab mit der Lib unzählige Projekte umgesetzt, funktioniert auf Mac, Win und Linux.

Du kannst die UI it HTML/CSS/JS bauen und zwischen Python und JavaScript kommunizieren, um von Python ermittelte Daten an die UI zu übergeben. Gibt auch einen haufen Beispiele in den Docs.

Woher ich das weiß:Berufserfahrung – Bin Softwareentwickler