Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Shell Skript mit Endlosschleife (http://www.informatikerboard.de/board/thread.php?threadid=2589)


Geschrieben von RoseHeart am 18.11.2015 um 17:38:

  Shell Skript mit Endlosschleife

Hallo,
ich möchte gerne ein Shell Skript erstellen und zwar soll das Skript in einer Endlosschleife 2 Minuten warten, dann aufwachen, den Befehl top aufrufen und dessen Ausgabe an eine Datei „system_load_log“ anhängen.
Und zusätzlich nach jeder Ausgabe durch eine Zeile mit „*********“ trennen.

Dabei bräuchte ich etwas Hilfe, das Skript richtig und vollständig zu schreiben.
Mein Anatz:

code:
1:
2:
3:
4:
5:
6:
7:
#!/bin/bash
while [ true ]
 do
  sleep 180 #2 Minuten warten 
    echo "top -n1 -b"
done


Mir fehlt das mit dem "***" trennen ganz.

Danke im Voraus!



Geschrieben von eulerscheZahl am 18.11.2015 um 18:29:

 

2 Minuten sind 120 Sekunden, nur so nebenbei.
code:
1:
2:
3:
4:
5:
6:
while [ true ]
do
	sleep 120 #2 Minuten warten 
	top -n1 -b
	echo "*****"
done



Geschrieben von RoseHeart am 18.11.2015 um 18:36:

 

Wie peinlich großes Grinsen
Natürlich meinte ich 120 Sekunden, weiß auch nicht warum ich 60 x 3 gemacht habe.

Vielen dank für deine Hilfe.



Geschrieben von RoseHeart am 18.11.2015 um 18:45:

 

Wie mach ich, damit die Ausgabe an einer Datei angehängt wird?
So etwa?

code:
1:
2:
3:
4:
5:
6:
while [ true ]
do
   sleep 120 #2 Minuten warten 
   top -n1 -b >> system_load_log
   echo "*****"
done


Ist dieser Code richtig, wenn ich nur die ersten 10 Zeilen der Ausgabe von top an die Datei anhängen will?

code:
1:
2:
3:
4:
5:
6:
while [ true ]
do
   sleep 120 #2 Minuten warten 
   top -n1 -b; head>> system_load_log
   echo "*****"
done



Geschrieben von eulerscheZahl am 18.11.2015 um 21:21:

 

code:
1:
2:
3:
4:
5:
6:
while [ true ]
do
   sleep 120 #2 Minuten warten 
   top -n1 -b | head >> system_load_log
   echo "*****" >> system_load_log
done

Wenn du die Ausgabe des einen Programms mit dem nächsten weiterverarbeiten willst, musst du sie mit | zusammenfügen.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH