Datei zeilenweise auslesen und Befehl ausführen

P

PhoenixDH

NOOB
Hab eine Datei Namens ALL_HWINFO in der Servernamen stehen in dieser Art:
Code:
fire: Precision WorkStation 360:WST
fire2: Precision WorkStation 360:WST
fire3: Precision WorkStation 360:WST

Das erste sind die Servernamen: fire, fire2, fire3

Jetzt suche ich ein Script, das mir nacheinander folgenden Befehl ausführt für alle Server in der Datei:
Code:
/cfg2html_server/cfg2html_aix/start_cfg2html.sh -a [B]SERVERNAME[/B]

Dank euch für eure Hilfe !
 
Zuletzt bearbeitet:
Hallo
for i in $(cut -d: -f1 INPUTFILE); do befehl $i ; done

Gruß Wolfgang
 
So, hab nochmal eine Frage dazu:

Das Script läuft ja jetzt komplett automatisch ab, klappert aber immer jeden Server ab der in der Liste steht. Jetzt hätte ich aber auch gerne, das man es noch per Hand aufrufen kann mit folgendem Aufruf:
Code:
./cfg2html_catch_all.sh -a SERVERNAME -x SYSTEM

dann soll nur der Server angesprochen werden !

Wenn das Script ohne Paramter aufgerufen wird soll es ganz normal ausgeführt werden:
Code:
#!/bin/ksh

WEBSERVER=fire

#Verzeichnisse neu erstellen, da diese wieder gelöscht werden
if [ ! -d /cfg2html_server/docs/ ]
then
mkdir /cfg2html_server/docs/
mkdir /cfg2html_server/docs/docs_aix/
mkdir /cfg2html_server/docs/docs_hpux/
mkdir /cfg2html_server/docs/docs_linux/
mkdir /cfg2html_server/docs/docs_sun/
fi

#Start Sammeln aller Informationen
#Sammeln aller AIX Systeme
for i in $(cut -d: -f1 /cfg2html_server/cfg2html_aix/ALL_HWINFO); 
do 
/cfg2html_server/cfg2html_aix/start_cfg2html.sh -a $i ; 
done

#Sammeln aller HP-UX Systeme
for i in $(cut -d: -f1 /cfg2html_server/cfg2html_hpux/ALL_HWINFO); 
do 
/cfg2html_server/cfg2html_hpux/start_cfg2html.sh -a $i ; 
done

#Sammeln aller Linux Systeme
for i in $(cut -d: -f1 /cfg2html_server/cfg2html_linux/ALL_HWINFO); 
do 
/cfg2html_server/cfg2html_linux/start_cfg2html.sh -a $i ; 
done

#Sammeln aller SUN Systeme
for i in $(cut -d: -f1 /cfg2html_server/cfg2html_sun/ALL_HWINFO); 
do 
/cfg2html_server/cfg2html_sun/start_cfg2html.sh -a $i ; 
done

#Kopieren der Dateien auf den Webserver
scp -r /cfg2html_server/docs/ ${WEBSERVER}:/opt/lampp/htdocs/

#Löschen der Dateien auf dem Sammelserver
rm -r /cfg2html_server/docs/

aber wenn die Parameter -a -x gesetzt sind immer nur einer, also z.B.:
Code:
/cfg2html_server/cfg2html_SYSTEM/start_cfg2html.sh -a SERVERNAME ;

Dank euch für eure Hilfe, hoffe mein Text ist verständlich !
 
Habs hinbekommen, danke !
Hatte nur mit der Syntax Probleme !
 
Hallo
Kleiner Tipp:
Wenn es fehlerunanfällig und portabel sein soll,
würde ich dir mal
man getopt
empfehlen.
case in Verbindung damit macht es dann.
Gruß Wolfgang
 

Ähnliche Themen

Zeile für Zeile auslesen und Befehl ausführen

ca. 1200 PDF-Dateien auslesen und bestimmte Daten in eine CSV-Datei speichern

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Werte aus Dateien lesen

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

Zurück
Oben