Dateien gleichzeitig öffnen

Post Reply
Message
Author
RON
Posts: 1
Joined: 09. Oct 2004 22:01

Dateien gleichzeitig öffnen

#1 Post by RON »

Liebes Forum,

vorweg ersteinmal möchte ich sagen, dass ich ein absoluter Neuling bei Linux bin. Folgende Frage habe ich:

Wir müssen einmal am Tag ca. 5 Dateien starten, dies muss manuell geschehen. Besteht nun hier die Möglichkeit diese Dateien gleichzeitig laufen zu lassen? Wenn ja, wie kann man dies erreichen? Die Dateien müssten nur auf der Konsole laufen, da sie keine direkte Ausgabe haben bzw. nur Text oder Fehlermeldungen.

Danke für Eure Hilfe
Gruss
RON

User avatar
Scory
Posts: 188
Joined: 16. Apr 2004 12:36

#2 Post by Scory »

Selbstverständlich kann man "Dateien" (= Shellscripts?) "gleichzeitig" laufen lassen - so viele Du willst. Und das ganze sowohl manuell wie auch automatisch (via crontab).

Wenn Du ein paar mehr Infos nennst, kannst Du auch mehr Infos bekommen - nur so ist es dermaßen abstrakt, dass weitergehende Hinweise nicht möglich sind.

root_tux_linux
Posts: 537
Joined: 07. Dec 2003 21:07
Location: Schweiz

#3 Post by root_tux_linux »

./scriptname &
jobs
fg
#Haupt-Rechner: Gentoo Linux 1.4.16 - 2.6.7
#Backup-Server: Slackware 10.0 - 2.4.26
#Filesharing/Web-Server: Slackware 10.0 - .2.4.26 (sys.homelinux.org)
#Miet-Host/Server: Redhat (2blabla.ch)

RONALDO

Befehle im Hintergrund ausführen

#4 Post by RONALDO »

Danke für Eure Hilfe.
Das mit den Befehlen funkioniert jetzt. Jetzt ergibt sich aber ein weiteres Problem. Ich möchte nachdem alle Befehle abgearbeitet wurden die Ausgabe sehen. Ist das möglich?

Beispiel:

ping www.domain.de &
ping www.domain2.de &
ping www.domain3.de &

Die Ausgabe wird mir direkt am Bildschirm angezeigt. Ich möchte diese aber erst sehen, wenn alle Befehle abgearbeitet wurden, oder wenigstens eine Meldung ausgeben, dass alle Befehle erledigt wurden.

Ist so etwas möglich?

Danke für Eure Hilfe
Gruss RON

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#5 Post by Lateralus »

Code: Select all

#!/bin/sh
# Jobs starten und Ausgabe in Dateien umlenken, danach ausgeben
nummer=1
for befehl in "ping www.domain.de" "ping www.domain2.de"; do
  eval $befehl > ausgabe$nummer 2>&1 &
  nummer=$[$nummer+1]
done

count=1

while [ "$count" -le "$nummer" ]; do
  cat ausgabe$count
  count=$[$count+1]
done
Müsste funktionieren, hab's jetzt nicht getestet.

RONALDO

#6 Post by RONALDO »

Hallo,

danke für Deine Nachricht. Das geht schon in die richtige Richtung. Aber ich habe Probleme mit diesem Skript. Ich habe das mal test.sh genannt. Wie kann ich das Skript jetzt ausführen?

Ist es auch möglich ein Perl Skript zu starten? Kann man die Ausgaben auch in eine einzige Datei schreiben -> hintereinander?

Sorry für die vielen Fragen, aber ich bin absoluter Newbie. Ich versuche schon alles über google usw. zu finden, aber so richtig findet man auch nix.

Tausend Dank und liebe Grüsse
RON

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#7 Post by klopskuchen »

Lasse die einzelnen Befehle einfach als Stapeldatei ablaufen:

Code: Select all

#!/bin/bash

Befehl >name_logdatei
Befehl >>name_logdatei
Befehl >>name_logdatei
Das Zeichen > lenkt die Ausgabe in die nachstehende Datei um.
Existiert diese Datei nicht, wird sie angelegt.
Das Zeichen >> hängt die Ausgabe in der Datei, an evtl. schon bestehenden
Eintrag, an.

Shellscript ausführbar machen:
chmod +x script_name

Um die Logdatei zu lesen gibst du ein:
less name_logdatei

oder schreibst den Befehl einfach in das script (ans Ende) .
Dann wird die Logdatei nach Abarbeiten der
in deinem Beispiel ping-Befehle ausgegeben.
Das ganze ist im Prinzip ein Äquivalent zur
windoofschen Batchdatei.

MfG, Klopskuchen
When all else fails, read the instructions .

Post Reply