Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Suse Linux 10 Skript zum Hardware auslesen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Kami



Anmeldungsdatum: 20.06.2006
Beiträge: 1

BeitragVerfasst am: 20. Jun 2006 15:37   Titel: Suse Linux 10 Skript zum Hardware auslesen

Hi,

kann mir einer von euch sagen, warum dieses folgende Skript nicht geht? Und wie die Syntax dazu wäre, hab da keinen peil von Rolling Eyes

Code:
 #! /bin/bash
#Datei: hardware
#Autor: Kami
#Datum: 21.06.2006
#Syntax:
#------------------------------------------------------------------------
echo "$ (ifconfig | grep "inet addr")"
echo "Datum: $ (date)" >> /root/$(hostname.dat)"
echo "erstellt von: $ (whoami)" > /root/$(hostname.dat)"
hostname -i
free -m
fdisk -l
grep "model name" /proc/cpuinfo
grep "cpu" /proc/cpuinfo
lspci | grep VGA
cat /var/log/boot.msg | grep ROM
cat /etc/SUSE-release
echo "Arbeitsspeicher $(find /var/log/boot.msg -type f | xargs grep "LOWMEM")"
echo "Test durchgeführt von $(whoami) am $(date)" > /root/$(hostname)
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 20. Jun 2006 18:04   Titel:

Was soll es denn tun? Welche Fehlermeldung erhältst du?

Am Skript selbst fällt mir die erste Zeile ins Auge: vor und hinter #! darf kein Leerzeichen stehen.

Außerdem muss das Skript ausführbar sein (chmod u+x skript), und du must natürlich einen gültigen Pfad zum Aufrufen angeben. Aus Sicherheitsgründen ist bei Linux das aktuelle Verzeichnis nicht im Pfad, um das Skript in dem Pfad aufzurufen, in dem es liegt, muss man ./skript schreiben.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 20. Jun 2006 19:43   Titel:

Uijeeee... Man kann zwar erkennen, was es tun soll, aber es *strotzt* vor Fehlern...
Code:
 #! /bin/bash
Janka trifft den Nagel auf den Kopf.
Code:
echo "$ (ifconfig | grep "inet addr")"
Für die Kommandosubstitution $() darf zwischen $ und ( kein Leerzeichen stehen. Abgesehen davon ist sie hier nutzlos bzw. doppelt gemoppelt - ein schlichtes 'ifconfig | grep "inet addr"' tut es auch.
Code:
echo "Datum: $ (date)" >> /root/$(hostname.dat)"
Bezüglich $() s.o. Beim Erstellen der Logdatei (in welche Du die IP-Adresse *nicht* hineingeschrieben hast?) muss das .dat außerhalb der $() stehen, da es ja nicht Bestandteil des Kommandos "hostname" ist.
Code:
echo "erstellt von: $ (whoami)" > /root/$(hostname.dat)"
S.o., in beiden Punkten.
Code:
hostname -i
free -m
fdisk -l
grep "model name" /proc/cpuinfo
grep "cpu" /proc/cpuinfo
lspci | grep VGA
cat /var/log/boot.msg | grep ROM
Im Prinzip i.O., aber in der Logdatei landen die Daten natürlich nicht.
Code:
cat /etc/SUSE-release
S.o., außerdem Groß-/Kleinschreibung beachten - ich bin mir ziemlich sicher, dass die Datei /etc/SuSE-release heißt! Und noch als Denkanstoß: Was passiert, wenn dieses Skript auf einem Fedora/Ubuntu/Gentoo-System ausgeführt wird...?
Code:
echo "Arbeitsspeicher $(find /var/log/boot.msg -type f | xargs grep "LOWMEM")"
Das find-Statement ist eine komplizierte Art und Weise, das grep-Kommando 'grep "LOWMEM" /var/log/boot.msg' zu schreiben... Außerdem Ausgabe wieder nach stdout statt Logdatei.
Code:
echo "Test durchgeführt von $(whoami) am $(date)" > /root/$(hostname)
$(hostname) funktioniert, aber dann fehlt die Endung .dat hinter ),. Und wenn sie dort stünde, würdest Du den bisherigen Inhalt überschreiben, da Du > statt >> als Ausgabeumlenkung verwendet hast.

Ich will auch nicht ausschliessen, dass da noch weitere Fehler lauern oder das Skript nicht macht, was Du willst oder dass ich Dich vielleicht an einigen Punkten mißverstanden habe - aber bevor der Berg oben nicht abgearbeitet ist, machen weitere Erläuterungen keinen echten Sinn mehr.

Viel Spass beim korrigieren, basteln & lernen,

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy