Digital Eliteboard

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwert bleiben

Projekt: Uptimes und System Infos online erfassen

0800555333

Hacker
Mitglied seit
9. Juli 2013
Beiträge
329
Erhaltene Reaktionen
370
Ich bastel zur Zeit an einer Webseite um allgemeine System Informationen zu sammeln und über einen Internet Webserver anzuzeigen:
Bitte, Anmelden oder Registrieren um URL-Inhalte anzeigen!


Fand es interessant eine einfache und zentrale Übersicht, mit Daten wie die aktuelle Uptime, was für ein Rechner genutzt wird oder was für eine Auslastung das System hat, über all meine kleinen Rechner (Futro S400, Igel 564LX, RaspberryPi und ein miniITX) zu haben

Dazu nutze ich ein bash Script welches ein mal täglich die Daten sammelt und an einen Webserver schickt (input.php) und auf dem Webserver wiederum kann man eine output.php aufrufen die diese Daten dann anzeigt..

[HR][/HR]
Wichtig für mich ist das Projekt möglichst transparent zu gestalten - alle Dateien sind für jeden einsehbar, sowohl die SQLite Datenbank als auch die beiden php Dateien.

Dafür hab ich für die PHP Dateien Verknüpfungen (symlinks) angelegt, da sonst der apache2 Webserver die *.php Dateien verarbeiten würde. Das funktioniert für die input.php auch sehr gut, nur für die output.php nicht so super da dort auch html Code enthalten ist wo sich leider nicht verhindern lässt dass apache2 diesen verarbeitet..

Aber um sicherzustellen das ich keine IPs oder derartiges speicher sollte es für euch eigentlich reichen in sowohl input.php (die Datei, die die Informationen vom sysinfos.sh entgegen nimmt) und der SQLite Datenbank (db.sqlite.sysinfos) rein gucken zu können - falls euch das doch nicht reicht könnt ihr mir auch gerne eine PN schicken und ich geb euch kurzfristig Zugriff auf den Server

Aber letzlich sind das nur irgendwelche Rechner, ob damit CS gemacht wird oder nicht ist (und soll) nicht von Bedeutung (sein)
(von meinen 4 Systemen ist nur eines dabei)

Selbst ihr könnt euer eigenes System nur dann erkennen wenn ihr zB eure UUID kennt (oder zumindest die ersten 4 Stellen :emoticon-0122-itwas)

[HR][/HR]

Folgende Daten werden zZt gesammelt:
- system uptime
- cpu model name
- cpu frequence
- cpu cores
- cpu load
- cpu load avg
- kernel
- distribution
- uuid of first harddisc

Die UUID benötige ich um ein System eindeutig zu identifizieren, damit ein Datenbank Eintrag auch aktualisiert werden kann


Das Projekt befindet sich derzeit noch in der Entwicklung, funktioniert bereits aber schon sehr gut..

Würde an dieser Stelle gern Feedback sammeln um ggf noch was zu verbessern und vielleicht steht ja eurerseits auch soviel Interesse daran das man das Projekt hier im Forum oben Anpinnt und als Referenz für Fragen wie zB:

Wie stabil ist ein ThinClient o.ä.?

Dabei spielt aber eben nicht nur die Uptime eine rolle sondern auch wie sehr er genutzt wird (load), um was für ein Modell es sich handelt (cpu) und welcher Kernel genutzt wird.
Eigentlich sogar auch sowas wie Temperatur usw aber leider haben nicht alle Systeme Sensoren die man abfragen könnte


[HR][/HR]
Ihr benötigt nur ein bash Script (sysinfos.sh), was ihr irgendwo speichern könnt (zB im /root/ Verzeichnis)
Ich empfehle aber einen extra Benutzer anzulegen der das Script dann ausführt (es sollten generell keine Prozesse oder Scripte als root laufen!)

Zum anlegen eines Benutzers gebt ihr als root folgenden Befehl ein: useradd -m -s/bin/bash sysinfo

-m bewirkt dass das Homedir für den Benutzer angelegt wird
-s/bin/bash legt die standard shell fest, also bash
sysinfo ist der Benutzer der angelegt wird und folglich wäre sein Homedir: /home/sysinfo

Dann wechselt ihr zu diesem Benutzer mit dem Befehl: su - sysinfo
Dann öffnet ihr am besten einen Linux Editor wie zB nano oder joe oder vi und copy&pastet das folgende Script dort direkt rein:
nano sysinfos.sh

Code:
Bitte, Anmelden oder Registrieren Code-Inhalt anzeigen!
Dann das Script ausführbar machen: chmod 755 sysinfos.sh

Und dann wie folgt in die Benutzer-crontab eintragen.
Dazu am besten vorher einmalig den Befehl export EDITOR=nano ausführen.
Ihr könnt auch einen anderen Editor angeben.
Der Befehl bewirkt dass der Standard Editor zum bearbeiten der crontab gesetzt wird, normalerweise wäre das nämlich " vi " aber der Umgang damit ist wie ich finde komplizierter als mit nano :)
Also, die crontab des Benutzers bearbeiten: crontab -e
Dort folgendes einfügen:
Code:
Bitte, Anmelden oder Registrieren Code-Inhalt anzeigen!
Damit wird das Script jeden Tag um 19 Uhr ausgeführt
$HOME beinhaltet das Homedir, das ist eine standardtisierte, Systemweite Variable die ihr nicht extra setzen müsst

(zum entwickeln übermitteln meine 2 Systeme jede Stunde ihre Daten)

[HR][/HR]Changelog:
sysinfos.sh
v0.02:
- Bei jedem ausführen wird das Script vom Webserver geladen, die Grösse verglichen und das alte ggf ersetzt (kann über "ScriptUpdater" abgeschaltet werden)
- Errorhandling verbessert
[HR][/HR]


Falls ihr Fragen habt dann würde ich mich freuen euch diese zu beantworten :)
 
Zuletzt bearbeitet:

Osprey

Moderator
Teammitglied
Mitglied seit
30. Dezember 2011
Beiträge
14.277
Erhaltene Reaktionen
14.733
AW: Projekt: Uptimes und System Infos online erfassen

Hi,
geniale Idee von dir. Vielen Dank. Bin in der Liste dabei seit jetzt :D
Gruß
Osprey
 
Ihre E-Mail-Adresse ist nicht öffentlich sichtbar. Wir werden Ihre E-Mail nur verwenden, um Sie zu kontaktieren, um Ihren Beitrag zu bestätigen.
Oben