MLD-5.x > x86 Systeme (PC)
MLD 5.2 Server-Host Communication unsauber
Atoq:
--- Quote from: clausmuus on January 23, 2025, 18:56:21 ---Nein, das ist fast richtig. Es fehlt nur ein $ bei $PING und Du solltest nicht bash sondern sh verwenden.
Hier meine verbesserte Version:
--- Code: ---#!/bin/sh
SERVER="192.168.0.15"
ping -c1 $SERVER
if $? = 0 then
exit 1
else
exit 0
fi
--- End code ---
Noch einfacher müsste das auch so funktionieren:
--- Code: ---#!/bin/sh
SERVER="192.168.0.15"
! ping -c1 $SERVER
--- End code ---
--- End quote ---
Also das scheint irgendwie an dem Systeminterpreter zu liegen, der da irgendetwas missversteht und einen hohen Exit-Code zurück gibt...
Wenn ich das wie o.a. kopiere, in Notepad kopiere, als Datei "test" speichere und ins entsprechende Verzeichnis /etc/vdr/shutdown.d kopiere, zeigt mit der MC beim Aufruf mit Edit erstmal am Ende jeder Zeile ein "^M" an.
Wenn ich die im MC alle lösche und dann wieder aufrufe:
bash test
Führt er den Ping zwar aus, aber dann kommt
test: line 8: syntax error near unexpected token `else´
test: line 8: `else´
Was zum Henker läuft da schief?
Ich habe auch mal die nsora in eine Datei clients umkopiert und da versucht, die "$client_ip auszulesen, aber da erzählt mir der Bash-Parser dann immer was von "unexpected End of file" ?!?!
Atoq:
Das lag wohl am fehlenden ";" hinter der Bedingung des "if " ;-)
Jetzt bin ich mal gespannt, was er gleich macht...
clausmuus:
Da fehlen auch eckige Klammern hinter dem if:
--- Code: ---#!/bin/sh
SERVER="192.168.0.15"
ping -c1 $SERVER
if [ $? = 0 ]; then
exit 1
else
exit 0
fi
--- End code ---
Außerdem muss die Datei ausführbar gemacht werden:
--- Code: ---chmod +x /etc/vdr/shutdown.d/...
--- End code ---
Atoq:
Okay, Dankeschön. :-)
Das mit dem "ausführbar machen" hat sich wohl erledigt, weil ich das "nsora"-skript in "clients" umkopiert und angepasst habe, damit der Server künftig auch dann nicht runterfährt, wenn der Raspberry mal ohne Mucken bei der Wiedergabe von Aufnahmen störungsfrei laufen sollte ;-)
--- Quote ---#!/bin/sh
. /etc/init.d/rc.functions
TEXTDOMAIN="nsora-nsora"
OLDIFS=$IFS
IFS=,
connections="$(LC_ALL=C netstat -n | grep ESTABLISHED)"
for client_ip in $NSORA_CLIENT_IP; do
echo $client_ip
if ping -c1 -w1 $client_ip; then
echo "$(gt 'No shutdown because client $client_ip is active.')"
svdrpsend.sh -d "MESG $(gt 'No shutdown because client $client_ip is active.')"
exit 1
else
echo "Shutdown !"
fi
done
IFS=$OLDIFS
exit 0
--- End quote ---
Und das funktioniert augenscheinlich 8)
clausmuus:
Du kannst noch die "connections=..." Zeile entfernen, da die nicht mehr verwendet wird.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version