Distributionsübergreifend Daten sammeln mit boardmitteln...

Dieses Thema im Forum "Linux & BSD" wurde erstellt von coach, 1. April 2010 .

Schlagworte:
  1. 1. April 2010
    hi@all,

    ich suche derzeit mehr oder weniger als spielerei für meine arbeit einen weg, um möglichst mit boardmitteln bestimmte pc-daten zu bekommen (per ssh, also keine gui-lösungen). das ganze sollte eine möglichst große bandbreite an distributionen unterstützen und tjoar, das ist garnicht so einfach^^ möglich wären auch (bash-)skripte anzufertigen, was vllt. bei sachen die unterschiedlich umsetzbar sind hilfreich wäre. konkret geht es um folgende daten:
    1. Computername
    2. Computer Domain
    3. OS Name
    4. Main User(?)
    5. Primäre IP
    6. Primäre MAC-Adresse
    7. CPU Name
    8. CPU Takt
    9. RAM
    10. HDD Größe
    11. HDD usage
    12. HDD frei
    13. Freier RAM
    14. Freier Swap
    15. Swap gesamt
    16. SMB-Freigaben

    bis jetzt habe ich folgende (vllt. nicht immer optimale^^) commands dafür (ist noch eine frühe phase, deshalb noch keine skripte) EDIT: achja, ich setze immer vorsichtshalber nen LC_ALL="C" davor^^):
    Computername:
    Code:
    hostname
    Domainname:
    Code:
    hostname -y
    OS Name:
    Code:
    cat /etc/issue|cut -d'\' -f1|grep -m1 $
    IP (bisher nur für eth0):
    Code:
    ifconfig eth0|awk '/inet addr/{print $2}'|cut -d':' -f2
    MAC-Adresse (auch nur für eth0 bisher):
    Code:
    ifconfig eth0|awk '/HWaddr/{print $5}'
    CPU Name:
    Code:
    cat /proc/cpuinfo|grep "model\ name"|cut -d':' -f2|sed 's/ //'
    CPU Speed:
    Code:
    cat /proc/cpuinfo|awk '/cpu MHz/{print $4}'
    RAM:
    Code:
    free|awk '/Mem:/{print $2}'
    HDD gesamt (bisher nur für root-partition):
    Code:
    df -hl /|awk '/dev/{print $2}'
    HDD usage (auch nur root):
    Code:
    df -hl /|awk '/dev/{print $3}'
    HDD frei:
    Code:
    df -hl /|awk '/dev/{print $4}'
    RAM frei:
    Code:
    free|awk '/Mem:/{print $4}'
    Swap frei:
    Code:
    free|awk '/Swap:/{print $4}'
    für main user und shares hab ich noch keine ahnung^^ hab das ganze bisher auf debian getestet, wäre cool, wenn ihr eine andere distro habt, wenn ihrs testen könntet und ggf. eine verbesserung posten könntet (z.b. bei suse wie man an den distronamen kommt etc). bin jetzt aber erstmal nen paar tage im urlaub, von daher nicht wundern, wenn ich nicht antworte=)
    schonmal danke an alle...mfg coach

    PS: frohe ostern@all=)
     
  2. 1. April 2010
    AW: Distributionsübergreifend Daten sammeln mit boardmitteln...

    Bei IP- und MAC-Addresse würde ich nicht auf ifconfig setzen, da es durch iproute2 ersetzt wurde und dadurch nicht mehr bei allen Distris mitgeliefert wird. Mit "ip addr" kriegst du auch Informationen über Netzwerkschnittstellen.
    Den Computernamen könntest du auch mit "uname -n" auslesen, aber ist ja dasselbe.

    Edit: Hier wäre ein kleiner Snippet für die SMB-Shares. Man greppt durch die /etc/samba/smb.conf (wäre interessant, ob die immer da ist), sortiert alle zeilen mit ; oder # am anfang raus (sind kommentare), sucht sich danach die section-namen raus, entfernt etwaige whitespaces am anfang (und die [-Klammer) und danach das gleiche nochmal am zeilenende.
    Code:
    cat /etc/samba/smb.conf | grep -v "^[#;]" | grep "\[\w*\]" | sed 's/^[ \t\[]*//' | sed 's/\]$//'
    edit2: Es gibt bei Samba allerdings "Special Sections" wie z.B. "global" und "homes". Die muss man halt noch rausfiltern.
     
  3. 1. April 2010
    AW: Distributionsübergreifend Daten sammeln mit boardmitteln...

    moin,
    habs grade bei archlinux getestet. das meiste funktioniert, außer:
    - mac adresse
    - ram

    bei der mac-adresse ist das " am ende zuviel. ohne das gehts einwandfrei und beim ram hast du die } am ende irgendwie vergessen

    dann klappt alles!
     
  4. 16. April 2010
    AW: Distributionsübergreifend Daten sammeln mit boardmitteln...

    aaaalso, ich bin wieder da und habe wieder etwas zeit beier arbeit=) erstmal danke für euer feedback, bewertungen habt ihr erhalten. den code oben habe ich angepasst und folgende neue befehle auf eure anregungen hin erstellt:

    IP-Adresse:
    Code:
    ip addr|grep eth0|awk '/inet /{print $2}'|cut -d'/' -f1
    MAC-Adresse:
    Code:
    ip addr|grep -m1 -A1 eth0|awk '/link\/ether /{print $2}'
    SMB-Freigaben:
    Code:
    cat /etc/samba/smb.conf | grep -v "^[#;]" | grep "\[\w*\]" | sed 's/^[ \t\[]*//' | sed 's/\]$//'|grep -v "^[global,homes]"
    wäre cool, wenn z.b. nen ubuntuler und nen suseler(^^) das ganze testen könnte...mfg coach

    PS: dickes lob an dich pyro=) funktioniert es denn bei dir und was hast du für eine distro? und achja, soweit ich weiß ist die smb.conf seit einer älteren version immer da=)
     
  5. 16. April 2010
    AW: Distributionsübergreifend Daten sammeln mit boardmitteln...

    Hoi,

    bin hier unter Arch Linux. Der IP-Snippet funktioniert, beim Mac-Snippet ist anscheinend ein kleiner Fehler drin:
    Code:
    ip addr|grep -m1 -A1 eth0|awk '/link\[B]/[/B]ether /{print $2}'
    Der fettgedruckte '/' hat gefehlt.

    Den Samba-Snippet kann ich nicht testen, da ich kein Samba installiert hab. Hab zum erstellen nur eine beispiel-samba.conf per google gesucht.
     
  6. 16. April 2010
    AW: Distributionsübergreifend Daten sammeln mit boardmitteln...

    ja, hab ich grad auch gemerkt^^ ich kann hier leider nicht mit copy+paste arbeiten, da meine linux-vm auf einem pc ohne internet läuft. und ich habe den befehl für den os-namen mal überarbeitet, damit die leerzeile am ende wegkommt=)...mfg coach

    EDIT: was würdet ihr sagen sind die wichtigsten distro's, gerade auch auf servern? ich hatte eine alte statistik gefunden, in der
    • gentoo
    • ubuntu
    • debian
    • suse
    • redhat
    auftauchen, also wenn da keine größere fehlt und die befehle auf denen laufen, wär ich mehr als zufrieden=)
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.