Skipt über Aufgabenplaner?

  • 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.

Macht Rebel

Benutzer
Registriert
10. Dez. 2017
Beiträge
12
Reaktionspunkte
1
Punkte
0
Hallo zusammen,

da ich mir gerade die Finger mit meinem Halbwissen breche, hier im Wiki und Forum keine Antwort gefunden habe, benötige ich einmal Eure Hilfe. Ich haben meinen Mac OS Server zugunsten einer Diskstation aufgegeben und vergessen, dass ich dort ein regelmäßigen Job (Script) habe laufen lassen. Nun stellt sich die Frage, kann ich auf der Diskstation über den Aufgabenplaner regelmäßig ein Skript with auf dem Mac laufen lassen?

Ich möchte stündliche eine IP Adresse im LAN abfragen, ob diese noch erreichbar ist. Falls nicht, sollte ein HTTP Push Request gesendet werden.

Danke im Voraus & frohe Weihnachten,

MachtRebel
 
Sollte schon funktionieren, sofern es nur um einen einzigen Client geht. Alternativ halt ein kleines Monitoring-System, wobei man da auch nicht mit Kanonen auf Spatzen schiessen sollte. Vielleicht könntest Du mal ein paar Infos mehr rüberreichen :)
 
Skript für IP Abfrage mit HTTP Request

Hallo zusammen,

falls mir jemand beim Skript helfen kann, so dass es über die Diskstation funktioniert, würde ich dafür gerne einen großen leckeren Caffè Latte beim Starbucks spendieren oder alternativ eine Mikrospende an Misereor oder Ärzte ohne Grenzen leisten.

Das war mein damalige Code Schnipselei ...

Rich (BBCode):
set theIP to (do shell script "arp -an")
try
--enter below the IP that has to be present:
    do shell script "ping -oq -c3 x.x.x.x"
on error
    sendIP(theIP)
end try

on sendIP(IPList)
curl -s \
  --form-string token=xxx \
  --form-string user=xxx \
  --form-string title='Lüftung ist aus' \
  --form-string message='Druckwächter prüfen' \
  https://api.pushover.net/1/messages.json

Danke & guten Rutsch,
MachtRebel
 
Das ist AppleScript. Mach Shell Script draus:

Code:
#! /bin/sh
PATH=/bin:/usr/bin

# IP-Adresse definieren
IP="x.x.x.x"
# user definieren
USR="xxx"
# token definieren
TOKEN="xxx"

# eine einzige Zeile:
ping -q -c3 ${IP} && curl -s --form-string token=${TOKEN} --form-string user=${USR} --form-string title='Lüftung ist aus' --form-string message='Druckwächter prüfen' https://api.pushover.net/1/messages.json || echo ${IP}
 
Zuletzt bearbeitet von einem Moderator:
Servus hvkls,

Wenn ich das richtig lese, muss ich nur folgende Zeile als Skript ausführen?

ping -q -c3 ${IP} && curl -s --form-string token=${TOKEN{ --form-string user=${USER} --form-string title='Lüftung ist aus' --form-string message='Druckwächter prüfen' https://api.pushover.net/1/messages.json || echo ${IP}

Gehören die Klammen dazu oder ohne ... ${x.x.x.x} && ODER $x.x.x.x &&?

Viele Grüße,
MachtRebel
 
Das Script ist alles ab "#! /bin/sh" inclusive; die Parameter werden am Anfang definiert; die Schlusszeile bleibt unverändert.

Die vollständige Prozedur ist:

1) In einem Linux-kompatiblen Editor wie Notepad++ oder Vi eine Datei namens "checker.sh" (oder so, Hauptsache ohne Leerzeichen, Sonderzeichen, Umlaute) erzeugen und im Linux-Format speichern.

2) Den gesamten (noch einmal korrigierten) Code von oben samt Shebang (#! /bin/sh) kopieren und einfügen. Achtung, wenn du das per Terminal machst, musst du darauf achten, dass die letzte Zeile wirklich eine einzige Zeile bleibt.

3) IP="" befüllen, z. B. IP="192.168.1.10"

4) USR="" befüllen, z. B. USR="homey"

5) TOKEN="" befüllen, z. B. TOKEN="ABC123"

Die letzte Zeile bleibt unverändert.

6) Speichern.

7) Ausführbar machen mit

chmod 0755 ./checker.sh

8) Testen mit

./checker.sh

9) Als Aufgabe im Aufgabenplaner definieren.
 
Darf der ausführende User denn überhaupt den ping absetzen?
 
Ja. Habe gerade in der selben Terminal-Session den Ping-Befehl gestartet. Das geht.
 
Mit dem User, dem das Script gehört? Wenn ja, welcher wäre das dann - root/<adminuser>/normaler user?
 
Ich bin am Mac als Admin angemeldet.

Wobei ich das Skript gerade mal auf der Diskstation ausgeführt habe. Dort lief es durch und ich erhielt eine Pushnachricht von Pushover. Das ist die gute Nachricht. Die Schlechte: Die IP ist erreichbar.

Der Request sollte rausgehen, wenn die IP nicht erreichbar ist.
 
Kleinigkeiten (für euch Programmierer :p), kümmer Dich lieber erstmal darum, dass es via Aufgabenplaner vernünftig läuft, sonst ist Dir mit dem "richtigen" Script ja auch nicht geholfen :o
 
@Macht Rebel

Ich hatte das irgendwie so verstanden, dass der Hauptteil ausgeführt werden sollte, wenn ping erfolgreich ist. Also andersherum:

ping -q -c3 ${IP} && echo ${IP} || curl -s --form-string token=${TOKEN} --form-string user=${USR} --form-string title='Lüftung ist aus' --form-string message='Druckwächter prüfen' https://api.pushover.net/1/messages.json
 
:cool: Es funktioniert. Super. Danke!.

Sende mir bitte per PN Deine Mail Adresse für den Kaffee. Alternativ kannst Du Dich gerne für die Spende entscheiden.
 
Hier im Forum helfen wir einander einfach, aber ich wäre der letzte, der Menschen in Not um eine Chance bringen würde :)
 
Nobel getan. Möge das kommende Jahr allen Menschen Glück bringen, und Dir besonders!
 
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