Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 21. Nov 2018 13:43

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 20. Jun 2006 15:37 
Offline

Registriert: 20. Jun 2006 15:30
Beiträge: 1
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 :roll:
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)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Jun 2006 18:04 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Jun 2006 19:43 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 14. Jan 2000 15:37
Beiträge: 699
Wohnort: Jülich
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..."


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de