Ich verstehe noch nicht ganz, wie das mit dem Timeout abläuft bzw. warum. Wenn in meinem Beispiel 192.168.178.113 nicht mehr pingbar ist, warum kommt dann netstat zu einem anderen Ergebnis.
Netstat gibt den Status der Netzwerkverbindungen wieder. Wenn ein Rechner nicht erreichbar ist, bricht deswegen die Netzwerkverbindung nicht gleich zusammen, sondern versucht das für einige Sekunden (Minuten?) zu überbrücken, wenn die Netzwerkverbindung nicht sauber abgeschlossen wurde.
Mein Problem ist, dass ich mit load nicht weiterkomme.
Muss es unbedingt load sein? Wenn Du in das Auto_OFF Script schaust, wird auch die Aktivität verschiedener Server getestet (ja, mit ping):
IsOnline() { for i in $*; do ping $i -c1 if [ "$?" == "0" ]; then logit PC $i is still active, auto shutdown terminated return 1 fi done return 0 }
Genauso wie die Aktivität einger Daemons (IsDamonActive()) oder sogar Programmen (IsRunning()).
178.70 ist Dein Server, 178.113 ist Dein Client, richtig? Wenn Dein Client ausgeschaltet ist, erkennt der Server das mit ping. Wenn Dein Client nur keine Musik hört mehr, dann könnte man mit ps -ef schauen, ob der DLNA daemon noch aktiv ist. Im Script kann man sich den Samba-Daemon ansehen, bei DLNA weiss ich nicht, wie man das abfragen kann, ob er noch aktiv ist, das müsstest Du testen. Alternativ kann man mit netstat auf dem Server die DLNA Verbindung kontrollieren (Kein 'Verbunden' mehr, sondern nur noch 'Listen' (oder 'lauschen' oder 'hören' in deutsch). Das dauert etwas (testen!), ist aber m.E. auch eine Aussage. Load zu checken wäre mir (wie Du auch gesehen hast) zu ungenau, genauso wie mir Netzwerkverkehr verfolgen und Bandbreiten zu berechnen zu kompliziert wäre. Einfache Kommandos sind hier besser, sie sollten schnell ein belastbares Ergebnis liefern, sonst dauert die Abfrage zu lange.
Kann ich den Timeout ignorieren? Eventuell überlege ich mir was mit ping statt mit netstat als Kriterium ob ein Client aktiv ist? Ich würde aber gerne eine aktive Verbindung als Kriterium wählen. Wenn 192.168.178.11 "up" ist, aber keine Verbindung zu 192.168.178.70 besteht, dann soll 192.168.178.70 runterfahren.
Das wären zwei Bedingungen. Klar, geht auch, muss nur programmiert werden. Das Auto_OFF Script ist dazu geschrieben, dass über Cron alle 10 Minuten kontrolliert wird, ob alle Bedingungen für einen Shutdown zutreffen (erst wenn diese zweimal zutreffen, fährt der Server runter). Also dieses Script ist nicht gedacht, dass der Server jede Sekunde Energie spart und im selben Moment herunterfährt wie der Client. Mit dem Auto_OFF script läuft er halt 20 Minuten länger.
Dirk