• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Bash Datei mit Automator ausführen lassen

TheSilver

Boskoop
Registriert
31.01.09
Beiträge
40
Hallo Liebes Forum,

ich habe ein, ich schätze mal, eigentlich sehr einfaches problem... leider habe ich noch trotz go...le noch keine Lösung gefunden 🤨

ich habe eine kleine bash Datei (von-sh) geschrieben, die ein Splittunneling macht wenn ich über VPN mit der Firma verbunden bin, so dass I-net etc nicht über die Firma läuft..

#!/bin/bash

sudo route -nv add -net 10 -interface utun5
sudo route change default 192.168.125.1


führe ich die Datei über das Terminal aus, muss ich noch das Passwort angeben und es funktioniert soweit.

nun möchte ich die Datei automatisch über den Automator ausführen lassen wenn ich mit dem VPN verbunden bin...
hier komme ich leider schon beim Ausführen der Datei an meine Grenzen.. 😕


Im Automator habe ich nun ein "Shell-Skript ausführen" angelegt und dachte nach diversen Suchen es würde mit folgendem Befehl funktionieren:

osascript - e 'do shell script "/documents//vpn.sh" with administrator privileges'

Klicke ich im Automator auf Ausführen, dann steht unten "Arbeitsablauf abgeschlossen"... ohne Fehler, aber wirklich ausgeführt hat er irgendwie nichts.

Könnt ihr mir sagen wo mein Fehler liegt? Gerne auch wie das ganze eleganter geht, ist mein erster mal das ich was mit Skripten und Automator auf dem Mac mache...


Gruß
Marco
 

m4371n

Querina
Registriert
27.12.20
Beiträge
181
Liegt den Script wirklich in "/documents/vpn.sh"?

Normalerweise ist dein Documents Ordner ein Unterordner von deinem Benutzerordner.

Und was willst Du mir dem Umweg über Automator eigentlich erreichen?
 

TheSilver

Boskoop
Registriert
31.01.09
Beiträge
40
hmm... das kommt jetzt wohl darauf an ob der Pfad vom root aus ausgehend sein muss, oder vom Benutzer...
wenn ich mein Terminal öffne, kann ich von dort aus die Datei öffnen, daher bin ich auf die Pfadangabe gekommen...
Sollte der Automator da nicht eine Fehlermeldung bringen wenn er die Datei nicht findet oder traue ich dem zu viel zu?

Also erreichen möchte ich dass die Datei bzw. die zwei route Kommandos ausgeführt werden wenn ich mit dem VPN verbunden bin...

Dachte mir da ist der Automator wohl das einfachste?
 

m4371n

Querina
Registriert
27.12.20
Beiträge
181
Wenn du einen Pfad mit / anfängst, ist er absolut, fängt also im root an. Und wenn du dein Script eh aus dem Terminal aufrufen willst, könntest du das auch direkt mit

sudo <pfad zu deinem script>

machen und im Script sudo weglassen.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,

du machst es komplizierter als nötig :)

Die Automator Aktion "AppleScript ausführen" macht den Umweg über osascript unnötig.
Und mit "do shell script" lässt sich dein Skript auch direkt ausführen ...

Aktion AppleScript ausführen
Code:
do shell script "sudo route -nv add -net 10 -interface utun5
sudo route change default 192.168.125.1" with administrator privileges

Als Programm speichern.

Wenn dir das nicht zu unsicher ist, könntest du auch das Passwort im Klartext ins Skript schreiben.
Naja, wir hatten hier mal einen Thread, wo es um Strategien ging, den Klartext zu vermeiden:

Gruß
 
Zuletzt bearbeitet:
  • Like
Reaktionen: trexx

TheSilver

Boskoop
Registriert
31.01.09
Beiträge
40
Guten Morgen,

also ich glaub ich bin zu unfähig 😔

@sedna : wenn ich die Befehle direkt im automator schreibe wie du das vorgeschlagen hast, dann bekomme ich eine Meldung
Bildschirmfoto 2021-03-07 um 08.41.35.png

Mal eine grundsätzliche Verständnisfrage:

wenn ich den Code im Automator über den "Play"-Button rechts oben ausführe, sollte dann die Aktion wirklich ausgeführt worden sein, oder macht der Automator da nur einen Testlauf?
Denn dann hätte doch der Weg über das osaskript ja funktionieren müssen, oder?

Bildschirmfoto 2021-03-07 um 08.40.51.png

Wenn ich das direkt über 'do Shell Skript' machen kann wär das für mich ja super, aber irgendwie mag das nicht 😟

was meinst du eigentlich mit "als Programm speichern"?

Leider war ich noch nicht soweit dass ich aus dem Automator rausgekommen bin...
Wenn ich auf sichern drücke, und die Automator-Datei anklicke öffnet sich aber wieder der Automator 🧐
Aber beinen Punkt der "als Programm speichern" heisst habe ich noch nirgends gesehen...
 

m4371n

Querina
Registriert
27.12.20
Beiträge
181
Ich kenne keine in macOS eingebaute Möglichkeit, beim Aufbau eines VPN automatisch einen Automator Workflow oder ein Shellscript ausführen zu lassen, es sei denn, der VPN-Client, den du benutzt, unterstützt das.

Sollte dein VPN-Client aber über Automator oder einen Shell-Befehl steuerbar sein, könntest du es so herum versuchen, also z.B. ein Automator-Programm oder Shellscript bauen, was das VPN aufbaut und deine Routen setzt.
 
  • Like
Reaktionen: dg2rbf

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,


wenn ich die Befehle direkt im automator schreibe wie du das vorgeschlagen hast […]
Ich schlug vor, die Aktion "AppleScript ausführen" zu nehmen ;)


wenn ich den Code im Automator über den "Play"-Button rechts oben ausführe, sollte dann die Aktion wirklich ausgeführt worden sein, oder macht der Automator da nur einen Testlauf?
Denn dann hätte doch der Weg über das osaskript ja funktionieren müssen, oder?
Ein Arbeitsablauf wird ausgeführt, wenn du ihn ausführst :p
Und nein, das hätte nicht funktionieren müssen, es dir zu erklären, würde hier zu weit führen.
(Du kannst deinen osascript Befehl ja alternativ mal testweise im Terminal ausführen)

Hier liegt -hüstel- quasi der Hase im Pfeffer:
Du hast ja schon meine Antwort nicht richtig gelesen.
Dann hast du -was gar nicht schlimm ist - eigentlich gar kein Hintergrundwissen zu diesem Thema.

Zumindest für den Automator kann man sich eine Grundidee, wie er funktioniert, allerdings in wenigen Minuten aneignen: öffne die gut geschriebene Hilfe im Automator und du gelangst zum Benutzerhandbuch.

was meinst du eigentlich mit "als Programm speichern"?

Leider war ich noch nicht soweit dass ich aus dem Automator rausgekommen bin...
Wenn ich auf sichern drücke, und die Automator-Datei anklicke öffnet sich aber wieder der Automator 🧐
Aber beinen Punkt der "als Programm speichern" heisst habe ich noch nirgends gesehen...
Oh, dann scheinst du eine elementare Sache in macOS noch gar nicht zu kennen:
Drücke beim Aufruf eines Menüs die Wahltaste ("alt"), um alternative Menüpunkte angezeigt zu bekommen!
Z.B. Automator -> Ablage: aus Sichern… wird dann Sichern unter… , wo man den Workflow als Programm speichern kann

Gruß
 

TheSilver

Boskoop
Registriert
31.01.09
Beiträge
40
Hallo,

@m4371n : ich verwende den in OS X integrierten VPN... wie ich anfangs bereits angedeutet habe wäre es meine Vorstellung gewesen dass ich die Aktion vom Automator bei aktiven VPN automatisch ausführen lasse, bzw. lassen kann... da es das erste mal ist dass ich mich mit dem Thema überhaupt beschäftige, kann es natürlich sein dass mein Wunschdenken hier nicht erfüllt wird 😅
Hatte gehofft man kann auslesen ob das VPN Interface aktiv ist, und dann den Ablauf starten... aber muss(te) ja erst mal schaffen die Routen über den Automator zu setzten..

@sedna : Da hast du recht, das habe ich tatsächlich und offensichtlich nicht gelesen dass da "Apple Skript" steht 😅🙈

... und kaum mach ich es richtig klappt's auch 😁
Muss zugeben dass ich das Benutzerhandbuch irgendwie immer vergesse, aber danke dass du mich daran erinnerst 🙃 werd ich mir mal etwas durchlesen.

Ok, ich kenne diese Funktion, aber ganz verstanden habe ich sie noch nie, also warum man solche Sachen dann Immer "verstecken" muss...
Und da ich sie sehr selten brauche, hab ich die Funktion nicht wirklich im Hinterkopf... wahrscheinlich verpass ich deswegen diverse Funktionen 😤🤔

Auf jeden fall klappt das jetzt mit der Umsetzung als AppleSkript und Speichern als Programm! 😀
Vielen Dank für die Unterstützung!

Ob ich den weg mit der Automatischen Ausführung dann noch hinbekomme, werde ich sehen, aber kann auch mit dieser Lösung leben

Gruß

Marco
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,

eine VPN Verbindung lässt sich ja auch mit einem Skript starten
Code:
scutil --nc start 'Mein VPN Name'

Das Verbinden wird ja einen Augenblick dauern, den man abwarten müsste ... aber an sich ließe sich dein Skript hinten dranhängen ...

Als AppleScript geschrieben -- aber ungetestet:

Code:
do shell script "scutil --nc start 'Mein VPN Name'"

-- oder ähnliches:
repeat until word 1 of (do shell script "scutil --nc status 'Mein VPN Name'") is "Connected"
end repeat

do shell script "sudo route -nv add -net 10 -interface utun5
sudo route change default 192.168.125.1" with administrator privileges


Gruß