Script nach Ruhezustand ausführen lassen? Wie geht das?

Dieses Thema im Forum "Mac" wurde erstellt von Juppes, 14 April 2014.

  1. Juppes

    Juppes Bekanntes Mitglied

    Registriert seit:
    25 April 2001
    Beiträge:
    3.673
    Hallo zusammen.

    Ich möchte ein Script, ähnlich diesem hier, zur Überwachung meiner gemounteten Laufwerke auf dem NAS regelmäßig bzw. nach dem Aufwachen des Mac ausführen lassen, damit er die Verbindung zu den Laufwerken nicht verliert:
    Code:
    set command to "ping -c 1 192.168.2.111"
    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 "smb://192.168.2.111/movies/"
    mount volume "smb://192.168.2.111/music/"
    mount volume "smb://192.168.2.111/ActiveFolders/"
    mount volume "smb://192.168.2.111/photos/"
    mount volume "smb://192.168.2.111/public/"
    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
    Leider komme ich nicht weiter, wie ich das Script regelmäßig ausführen kann. Als Startobjekt bekomme ich es noch hin, wie geht es aber dann weiter?
    Zuletzt bearbeitet: 15 April 2014
  2. dr_tommi

    dr_tommi alter Oldie

    Registriert seit:
    26 April 2001
    Beiträge:
    12.546
  3. Juppes

    Juppes Bekanntes Mitglied

    Registriert seit:
    25 April 2001
    Beiträge:
    3.673
    Ok, danke, ich versuche es mal mit Sleepwatcher. Das erwähnte Controlplane habe ich mir angeschaut, bietet jedoch keine Aktion, die mit dem Aufwachen verknüpft ist, oder ich bin zu blöd, sie zu finden.
  4. dr_tommi

    dr_tommi alter Oldie

    Registriert seit:
    26 April 2001
    Beiträge:
    12.546
    Laut Featurelist sollte das Programm genau dann das machen, was du willst:
  5. DrSnuggles

    DrSnuggles Xanatos

    Registriert seit:
    31 Oktober 2004
    Beiträge:
    20.999
    @Juppes:

    Unter Windows hab ich mir einfach ein Skript gebaut was in einer Endlosschleife 60 Sekunden schläft und die sich dann jeweils die Uhrzeit von der Realtime-Clock holt.
    Wenn die Realtimeclock sich um mehr als 61 Sekunden verändert hat hat das System wohl geschlafen.
    -> Ausführung von was auch immer
  6. dr_tommi

    dr_tommi alter Oldie

    Registriert seit:
    26 April 2001
    Beiträge:
    12.546
    @Dr. Snuggels
    Unter Windows hätte man auch das Eventlog nach den Ereignissen vom PowerTroubleShooter mit ID 1 auswerten können. Dieser Event wird ausgelöst wenn das System wieder erwacht.
    Über die Aufgabenplanung bei dem entsprechenden Ereignis das passende Script ausführen lassen. Da ist ja nicht nur eine zeitgesteuerte Ausführung möglich sondern natürlich auch eine eventgesteuerte.
    Man kann auch abfragen, wie lange das System geschlafen hat.
    z.B. mit der Powershell:
    Code:
    Get-EventLog -logname system -Source 'Microsoft-Windows-Power-Troubleshooter' | ft TimeGenerated, Message -AutoSize -wrap
    Aber unter OSX sieht das eben anders aus. ;)
    DrSnuggles sagt Danke.
  7. DrSnuggles

    DrSnuggles Xanatos

    Registriert seit:
    31 Oktober 2004
    Beiträge:
    20.999
    @dr_tommi:

    Das ist ja mal ne geniale Lösung. Bin garnicht auf die Idee gekommen mir das Eventlog anzuschauen.
  8. Achille Pellegrini

    Achille Pellegrini Bezahlter Provokateur

    Registriert seit:
    31 Mai 2014
    Beiträge:
    606
    Keyboard Maestro hat verschiedene Trigger für Scripts oder Actionen - eins Trigger ist halt system wake up und funktioniert tadellos - auch sonst kann ich Keyboard Maestro empfehlen.
  9. equipe

    equipe Zeitreisender

    Registriert seit:
    2 Januar 2002
    Beiträge:
    364
    "[SleepWatcher] is a command line tool (daemon) for Mac OS X that monitors sleep, wakeup and idleness of a Mac. It can be used to execute a Unix command when the Mac or the display of the Mac [...] wakes up [...]."

    http://www.bernhard-baehr.de
    Achille Pellegrini sagt Danke.
  10. Juppes

    Juppes Bekanntes Mitglied

    Registriert seit:
    25 April 2001
    Beiträge:
    3.673
    Danke, Sleepwatcher wurde ja bereits oben schon erwähnt.
  11. equipe

    equipe Zeitreisender

    Registriert seit:
    2 Januar 2002
    Beiträge:
    364
    Stimmt ja, Du schriebst, dass Du es versuchen würdest. Bist Du denn weiter mit dem Problem? Funktioniert es?
  12. Juppes

    Juppes Bekanntes Mitglied

    Registriert seit:
    25 April 2001
    Beiträge:
    3.673
    Ehrlich gesagt habe ich es noch nicht weiterverfolgt, da ich meine Mac-Festplatte aufgerüstet und die ITunes Bibliothek auf die lokale Festplatte verlagert habe. Seitdem brauche ich das nicht mehr. Meine anderen Clients greifen ja direkt auf das NAS zu.
    equipe sagt Danke.
  13. xtraa_

    xtraa_ Serviervorschlag

    Registriert seit:
    28 Februar 2003
    Beiträge:
    14.988
    Hi,

    ich hab hier einen Installer, der die schlecht dokumentierte Einrichtung für Sleepwatcher
    zum Kinderspiel macht.

    Zu Copypasten wäre jeweils nur das gewünschte, auszuführende Script, welches dann in
    die Datei xsleep bzw. xwakeup kommt. Bei mir startet er z.B. beim Aufwachen jedes mal
    die Datei WAKEUP.app im Home-Verzeichnis, um meine Soundkarte zu resetten. Aber Du
    kannst natürlich auch jedes beliebige Skript starten lassen.

    Warum lass ich eine mit Automator erstellte .app starten? Nunja, mein Shellskript benötigt
    Sudo für Terminalbefehle (kextunload, kextload) daher ist das etwas hmmh :)

    Um Sudo zu bekommen sieht das so aus: (dirty und insecure, ich weiß)

    Code:
    sudo -s | echo HIERPASSWORTREIN \!
    
    Terminalbefehle oder skripte hier rein, Zeile für Zeile.
    
    
    Zur Benutzung:

    - sleepwatcher.pkg installiert Sleepwatcher, wo es überall hingehört
    - SleepWatcher StartupItem.pkg installiert die skripte

    Nicht vergessen, die Skripte mit Berechtigungen zu versehen und in einem Editor halt nach
    Deinen Wünschen anzupassen.

    Text im Installationsfenster durchlesen für die Ordner der Skripte!

    http://s000.tinyupload.com/?file_id=09386854978824426689

    Falls jemand wissen will, wie so eine .app im Automator gemacht wird: Ganz einfach so,
    reinziehen und als app exportieren:

    Screenshot 2014-06-24 um 17.25.15.png

    Gruß
    xtraa
    Juppes sagt Danke.
  14. Juppes

    Juppes Bekanntes Mitglied

    Registriert seit:
    25 April 2001
    Beiträge:
    3.673
    Super!

    Da lass ich doch gleich auch meine Soundflower Einstellungen mit überprüfen und binde die Synology auch mit ein. Ist echt sehr hilfreich!