Die Kunst der Automatisierung

Ein automatisierter Prozess besteht im wesentlichen aus zwei Komponenten:

  • Eine Aufgabenstellung besteht aus mehreren Teilschritten, die wiederkehrend (weitgehend) identisch sind
    Die Verknüpfung solcher Teilschritte kann z.B. mit Automator, AppleScript, Shell-Scripten oder programminterner Triggermechanismen erfolgen (Beispiel: RagTime kann über entsprechende Rechenblattfunktionen Datensätze aus dem Adressbuch beziehen).
  • Es gibt einen Event, der die Aufgabenstellung auslöst
    Im einfachsten Fall ist es ein regelmässig wiederkehrendes Ereignis, das über fixe Zeiten oder Intervalle aufzurufen ist. Andere Event-Trigger liefern z.B. Tastatur-Shortcuts, wie sie Butler von Peter Maurer verwalten kann, Location X, der die Netzwerkumgebung erkennt und bei Veränderung als Anstoss für automatisierte Arbeitsabläufe liefern kann. Ähnlich arbeitet auch DisplayWatcher. Hier wird jedoch nicht die Netzwerkumgebung überwacht, sondern wechselnde Monitoreinstellungen, z.B. wenn ein externes Display oder ein Beamer angeschlossen wird. Tools wie Sofa Control oder Remote Buddy verarbeiten Eingaben der Apple Fernbedienung; Griffin bietet mit Proxi etwas ähnliches für die hauseigene Eingabehardware abzufangen.

Zeit ist Geld

Für die Steuerung von zeit- oder intervallabhängigen Prozessen bietet OS X gleich mehrere Möglichkeiten. Die offensichtlichste ist iCal. Ein regelmässig wiederkehrender Termin zusammen mit einem Programmaufruf bei Erreichend des Termins ist die einfachste Form der Steuerung. Im Idealfall richtet man einen eigenen Kalender für solche Aufgaben ein, der im Normalfall ausgeblendet wird, um den Überblick über seine eigentlichen Termine zubehalten.

Sehr viel eleganter, weil im Unterbau von OS X verhaftet, sind cronjobs oder launched Einträge. Kommandozeilenfexe werden die notwendigen Statements sehr fix mit einem einfachen Texteditor erzeugt haben. Für uns „Normalos“ gibt es erfreulicherweise Tools wie CronniX für die Erzeugung von Crontab-Einträgen und Lingon zur Verwaltung von launchd-Ereignissen. Der entscheidende Unterschied zwischen den beiden: cron arbeitet statisch exakt zur eingestellten Zeit. Ist der Rechner zu dem Zeitpunkt nicht eingeschaltet, findet der Aufruf nicht statt. launchd ist etwas intelligenter. Ist der Rechner zum Zeitpunkt des Aufrufs nicht eingeschaltet, wird der Prozess zur nächsten Gelegenheit, wenn der Rechner wieder an ist, nachgeholt.

Ausführung beim An- oder Abmelden

Ein weiterer wertvoller Trigger ist das Login oder Logout eines Benutzers. So können Prozesse einmalig beim An- oder Abmelden über einen einfachen Kommadozeilenbefehl erzeugt werden:

$ sudo defaults write com.apple.loginwindow LoginHook /pfad/zum/Programm

$ sudo defaults write com.apple.loginwindow LogoutHook /pfad/zum/Programm

Sind die beiden Aufrufe um einen Prozess beim Anmelden (LoginHook) bzw. Abmelden (LogoutHook) zu starten.

Eine ähnliche Funktion für den schnellen Benutzerwechsel bietet WinSwitch über die „Switch-In-Items“ und „Switch-Out-Items“ Ordner.

WinSwitch Preferences

In den Ordnern können Programme abgelegt werden, die beim Wechsel vom oder zum Benutzer gestartet werden.

Beispiel: regelmässige Synchronisation von Terminen und Adressen zwischen Mobiltelefon und Macintosh

Wer für kleinere Außentermine nicht immer den Laptop mitschleppen mag, vertraut seine Kontakte und Termine einem PDA oder seinem Mobiltelefon an. In meinem Fall bin ich – mal wieder – bei Sony Ericsson gelandet. Die Möglichkeiten der Zusammenarbeit zwischen Mac und Telefon sind mit den Geräten dieses Herstellers einfach maximal, fast unabhängig davon für welches Modell man sich entscheidet.

Um den Datenbestand des Telefons mit dem des Mac abgleichen zu können liefert iSync sehr gute Dienste. Da ich zuverlässig meine Datenbestände immer aktuell halten will und es mir zu mühsam ist immer wieder iSync aufzurufen und die Synchronisation anzustossen, habe ich nach Arbeitserleichterungen gesucht.

Sync Now

Das erste Tool findet sich bei Julian Wright. Mit der Einführung von Tiger hat sich das Verhalten des iSync-Menüleisten Icons verändert. So ruft es heute nur noch iSync auf, während unter Panther noch eine sofortige Synchronisierung möglich war. An dieser Stelle hilft Julians Sync Now weiter, das genau diese Funktionalität wiederherstellt. Zum Aufruf aus der Menüleiste muß jedoch ein Tool wie z.B. der schon erwähnte Butler zur Hilfe genommen werden. Bei mir ist so ein komplettes Menü für alles rund um die Handysynchronisation entstanden.

Sync Menü

Damit ist zumindest ein schneller Aufruf zwischendurch möglich. Eine Regelmässigkeit entsteht noch nicht.

Einmal täglich bitte …

Im vorliegenden Fall habe ich mich für einen Cronjob entscheiden und entsprechend per CronniX erzeugt:

Erzeugung eines Cronjobs mit CronniX

Hier wird also um 12:00 Uhr, an jedem Tag, jeden Monat das Programm Sync Now gestartet.

Nach oben scrollen