Applescript zu bestimmter zeit aussetzen.

stefan19773

stefan19773

Aktives Mitglied
Thread Starter
Dabei seit
23.09.2012
Beiträge
238
Reaktionspunkte
27
Hallo,
zum mounten der Laufwerke meiner NAS nutze ich ein
Script. Dies wiederum starte ich mit "launchctl load -w com.laufwerke.blackbox.plist".
Folgende Code nutze ich in der .plist,

Code:
<?xml version="1.0" encoding="UTF-8"\?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.laufwerke.blackbox</string>
<key>ProgramArguments</key>
<array>
<string>/Users/stefan/Library/Services/Laufwerke.app/Contents/MacOS/applet</string>
</array>
<key>RunAtLoad</key> 
<true/>
<key>StartInterval</key>
<integer>3000</integer>
</dict>
</plist>

Alles soweit wunderbar, allerdings fährt die NAS zu einer bestimmten Zeit
in den
Ruhezustand (22:00-05:00), in dieser Zeit ist das Script wirkungslos.
Mein frage nun, kann ich den Code so ändern das er in der Zeit zwischen 22:00-05:00 Uhr
nicht ausgeführt wird.


Gruß
Stefan
 
du könntest eine zeitabfrage ins applet einbauen oder gleich einen cron-job anlegen.
cron-style zeitangaben gehen ja bei launchds leider nicht. du müsstest sonst sämtliche run-zeiten in die plist eintragen.
 
Möglicherweise hilft auch
Code:
<key>KeepAlive</key>
<dict>
    <key>PathState</key>
    <dict>
        <key>/tmp/runJob</key>
        <true/>
    </dict>
</dict>
wenn der Pfad auf das NAS zeigt. Ob der Job aber wieder anläuft, weiss ich nicht.
da könnte dann ein
Code:
<key>StartOnMount</key>
<true/>
helfen. Der gilt dann aber für alle mounts, da gibt es keine Unterscheidung.


Siehe auch http://launchd.info/.
 
Erst mal vielen Dank,
Olivetti ich habe mir dein rat zu Herzen genommen
und das ganze über Crontab versucht allerdings scheitert es
daran das ich mein Script bzw. applet mit cron nicht starten kann.
der Job sieht wie folgt aus:

Code:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/Users/Stefan/bin
*/1 5-22 * * * /Users/Stefan/bin/Laufwerke.app
 
.../Laufwerke.app/Contents/MacOS/applet
 
Danke, habe gerade heraus gefunden...:)
 
nimm "/etc:" aus deinem PATH. da sind üblicherweise keine binaries enthalten, nur config files.

was steht denn in deinem applet? evtl. kann man das ja gleich in ein bash script packen.
 
Zuletzt bearbeitet:
Bitte nicht Steinigen, aber ich bin absolut kein Profi in Sachen Script schreiben,
habe mir alles nur zusammen gesucht, folgendes in dem applet:

Code:
set command to "ping -c 1 192.168.178.23"

set checkVar to false

repeat until checkVar is true

    try

        if ((do shell script command) contains " packets received, 0.0% packet loss") then

            mount volume "afp://stefan:Stefan-19773@192.168.178.23/Video"

            mount volume "afp://stefan:Stefan-19773@192.168.178.23/home"

            mount volume "afp://stefan:Stefan-19773@192.168.178.23/homes"

            mount volume "afp://stefan:Stefan-19773@192.168.178.23/Software"

            mount volume "afp://stefan:Stefan-19773@192.168.178.23/web"

            mount volume "afp://stefan:Stefan-19773@192.168.178.23/music"

            set checkVar to true

        end if

    on error

        display dialog "Es konnte keine Verbindung aufgebaut werden." buttons {"Nochmal", "OK"} with icon stop giving up after 3

        if button returned of result is "OK" then

            set checkVar to true

        else if button returned of result is "Nochmal" then

            set checkVar to false

        else

            set checkVar to true

        end if

    end try

end repeat
 
hier wird keiner gesteinigt. :p
wenn du willst kann ich dir ein bash script bauen, das die mounts einzeln checkt (dauert aber ein paar tage, bin im moment eher abwesend).
das kannst du auch in dein ~/bin legen und vom cronjob starten lassen.
hat dein nas einen hostnamen? wenn ja, würde ich den verwenden.
 
Ich werfe einen Stein!
Habe nämlich die Anfrage auch in einem anderen Forum gelesen :mad: , wo übrigens auch Hilfe angeboten wurde.
Bitte mal in dich gehen und überlegen, was du da verzapft hast!
 
  • Gefällt mir
Reaktionen: Olivetti
Danke für dein tolles Angebot Olivetti,
aber ich möchte nicht noch mehr kritisiert
werden.
Nur noch eine Frage, ist es verboten
sich Hilfe in Verschiedenen Foren zu
holen.
 
verboten nicht, aber unfair (was bei vielen, vor allem langjährige usenet- und forenmitstreiter, auf das gleiche rauskommt :p ).
wenn man's macht, dann sollte man erst adäquat abwarten und in dem crossposting auf's andere forum verlinken.
(mit anderem forum meine ich nicht ein brett hier bei MU, sondern, wie in deinem fall jetzt, das rote forum).

MU-regeln -> https://www.macuser.de/help/netiquette/
 
Zuletzt bearbeitet:
Ok, habe deine Botschaft verstanden und Zukunft Besserung geloben ;)
 
Zurück
Oben Unten