Online Uptime Tracking (bash/php)

  • Moin


    Ich bin aktuell dabei in kleines Project zu basteln, um über ein kleines bash Script allgemeine Informationen an einen Webserver (sqlite3 db) zu übermitteln und über den Webserver diese Daten dann anzuzeigen
    (sorry wenn das etwas umständlich klingt, weiss nicht wie ich das sonst beschreiben soll :))


    Folgende Daten werden von dem Script gesammelt:


    - system uptime
    - cpu model name
    - cpu frequence
    - cpu cores
    - cpu load
    - kernel
    - distribution
    - uuid of first harddisc


    Die UUID nutze ich um ein System zu identifizieren, damit der jeweilige Datenbankeintrag geupdated werden kann..



    Nun zu meinen Problemen bzw Fragen:


    1) Wie kann ich feststellen ob es sich um einen RaspberryPi handelt?


    Gibt es irgendwelche aksolut eindeutige Merkmale, die bei sowohl Raspbian als auch XBMC und was es sonst noch so an Distributionen für den RPI gibt - die eindeutig auf einen RPI hinweisen?


    Hintergrund ist, das nicht nur Raspberry's ihr Daten übermitteln werden, sondern auch andere Systeme - deshalb kann/möchte ich nicht hardcoded einfach festlegen das es sich um RPI's handelt


    Zuerst dachte ich an "cpu model name" aber die CPU könnte ggf auch woanders genutzt werden, oder irr ich mich damit? :denker:




    2) Desweiteren hätte ich auch noch eine Frage zur Berechnung der CPU Load (/proc/stat):
    Habe ziemlich viele Beispiel im Netz gefunden aber überall werden vorhandene Werte von den aktuellen abgezogen bevor sie berechnet werden - leider hab ich nicht rausfinden können wieso das so gemacht wird? :s


    In /proc/stat ist die erste "cpu" Zeile der Load aller cores, also ist das die einzige die mich interessiert.. Seit kernal 2.6 oder so sind es zudem 10 Spalten also unterschiedliche Zahlen:
    Von links nach rechts:
    * user: normal processes executing in user mode
    * nice: niced processes executing in user mode
    * system: processes executing in kernel mode
    * idle: twiddling thumbs
    * iowait: waiting for I/O to complete
    * hardirq: servicing interrupts
    * softirq: servicing softirqs
    * steal: involuntary wait
    * guest: running a normal guest
    * guest_nice: running a niced guest


    Kann ich jetzt nicht einfach daher gehen und
    " user + nice + system + iowait + hardirq + softirq + steal + guest* "
    zusammen rechnen um die Auslastung zu erhalten?




    :danke_ATDE: für jegliche Anregungen :)