Ping-Script

O

onlineuser

Mitglied
Hi,

muss folgendes Script schreiben:

Code:
Schreiben Sie ein Skript, dass alle 60 Sekunden testet ob alle als Argumente
angegebenen Rechner per Ping erreichbar sind. Ausgabe:
Zuerst die erreichbaren, aufsteigend sortiert nach mittlerer RTT, dann
unerreichbare.
Hinweis: Pause innerhalb von Skripts: mit sleep, siehe Manpage

Code:
#!/bin/bash
clear
echo "Aufgabe 2.4"
if [ $# -eq 0 ]; then
  echo "zu anpingende IP-Nummern als Parameter angeben"
else
  #$* enthält alle Parameter, $# enthält Anzahl der Parameter
  for ip in $*
  do
    echo $ip 
    ping=$(ping -c 5 $ip)
    echo $ping | cut -d "=" -f2 | cut -d "/" -f2     #rtt average auslesen
  done

Bis jetzt sieht es mal so aus. Jedoch, wenn die Gegenstelle nicht anpingbar ist, kann man auch keinen rtt-Wert auslesen.

Kann mir noch jemand bitte eine Ideen geben, wie ich diese Aufgabe lösen soll?

Solte ich alles in ein Array schreiben bezüglich der Sortierung? ODer wie könnte ich das sonst realisieren?

Liebe Grüsse.
 
Code:
Kann mir noch jemand bitte eine Ideen geben, wie ich diese Aufgabe lösen soll?

Wieso?

Du bist doch fast schon fertig.

Prüf halt den Rückgabewert von ping, je nach Erreichbarkeit weißt du dann auch ob du den RTT berechnen kannst oder nicht.

Mach dir ein zweidimensionales Array und speicher darin die Ips mit den zugehörigen RTTs. Das kannst du dann mit dem Befehl sort entsprechend sortieren und ausgeben lassen.

Eleganter würde es mit Hashs (=assoziatives array) gehen, das kennt die Bash aber leider nicht.
 
Hi,

ok, dann mach ich es mit einem Array. Zuerst dachte ich an einen Output in eine Datei und diese dann einfach mit sort und awk dementsprechend sortieren bzw. ausgeben.

Liebe Grüsse.
 

Ähnliche Themen

Last mit etc/passwd anzeigen lassen

Fehler im script

Server-Monitoring mit RRDTool

Zurück
Oben