Task Shell endet mit Error Code

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Dümpel

Benutzer
Registriert
26. Feb. 2011
Beiträge
6
Reaktionspunkte
0
Punkte
1
Hallo zusammen

Ich versuche per Tasksheduler ein Script zu starten um ein URL aufzurufen. Begriffen hab ich, dass ich das Script direkt in das Fenster tippen muss und nicht ein Pfad auf eine Datei (*.sh ) setzen.

Bsp.:

/bin/wget http://www.api.net/sdp/api/IP/update/dc100d5a69xxxxxxxx?ip=8.8.8.8


Nun komme ich nicht weiter. Ich habe z.b."/bin/wget -spider http://www.api.net/sdp/api/IP/update/dc100d5a69?ip=8.8.8.8" versucht.

Es endet immer mit Error code 2 / 3. Wie muss das Script aussehen, dass ich nicht auf einen Fehler laufe. Den Zweck erfüllt es bereits jetzt.

Ziel:
Ich will keine Webseite runteraden. Da soll bloss eine API ein update kriegen.

Die Antwort ist ein XML:
<IPController.APIResponse>
<Message>Vorname Name, Your IP 8.8.8.8 has been activated.</Message>
<Status>Success</Status>
</IPController.APIResponse>
 
Bei spider sollten es 2 Bindestriche sein

Rich (BBCode):
wget --spider http://....

vielleich kommt wegen dem der Fehler?
 
Also Ich bin Weiter:

Es scheit völlig egal zu sein ob man eine Datei ausführt wie z.B.

cd /volume2/homes/admin
./blub.sh

oder

cd /volume2/homes/admin
/bin/wget http://www.api.net/sdp/api/IP/update...xxx?ip=8.8.8.8


oder das Script Direkt eingibt

Ganz wichtig in beiden Fällen:
Der User muss an diser Stelle schreiben können, wo das script läuft. Eigetlich wollte ich mit dem --Spider genau das verhindern, dass er eine Datei erzeugt. Was mir bis jetzt nicht gelungen ist.

Hinzu kommt nun noch letzters Problem:
Bei 5min Takt schreit die API: To Many Updates. Das heisst dann wohl, ich muss mir was basteln.
Merken: Meine letzte IP
Aktuelle IP Abrufen: Dumemrweise ist das ja dann nicht die Lokale
Nur Updaten, wenn geändert :(

War doch so einfach der Plan.....Easy ist ja Ostermontag.

Danke für das "--spider" nun hab ich wenigstens den Synstax begriffen. Ich arbeite nun mit SSH und Putty, so habe ich auch ein vernüpftiges Feedback ob mein Script geht.
 
Vielleicht kannst es ja irgendwie so lösen, dann wird die IP nur aktualisiert, wenn sie sich ändert.

Rich (BBCode):
#!/bin/bash

WORK_DIR="/volume1/homes/admin"
URL="http://www.myip.ch/"

if [ ! -f ${WORK_DIR}/myip.txt ]; then
    touch ${WORK_DIR}/myip.txt
else
	LAST_IP=`cat ${WORK_DIR}/myip.txt`
fi

CHECK_IP=`wget -q -O ${WORK_DIR}/myip.txt ${URL}`
NOW_IP=`cat ${WORK_DIR}/myip.txt | grep "Current IP Address" | grep -Eo "([0-9]{1,3}[\.]){3}[0-9]{1,3}"`
echo ${NOW_IP} > ${WORK_DIR}/myip.txt

if [ "${LAST_IP}" != "${NOW_IP}" ]; then
	echo "Alte IP:" ${LAST_IP}
	echo "Jetztige IP:" ${NOW_IP}
	# UPDATE
	wget -q --spider http://....
else
	echo "IP noch gleich"
fi

exit 0
 
Zuletzt bearbeitet:
You made my day ! Danke

Läuft eins A. Hatte noch etwas troubels, da ich das Ding in Notepad++ in Windows erstellt habe und Linux sah da immer eine weitere Zeile. Was ich dann mit dem Editor vom Synology gelöst habe.

Danke und einene Schönen Tag

PS: Intressant ist, dass du eine Schweizer URL brauchst. --> Grüsse aus Bern
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat