Privatsphäre?
Das Privacy-Handbuch gibt nützliche Ein- und Ausblicke.
Ordner und Dateien automatisch online synchronisieren…
…in einer Apple-Umgebung.
Wenn es darum geht, viele Dateien mit sich ständig aktualisierenden Inhalten, im Internet zum herunter laden anzubieten, sollte das automatisch und möglichst im Hintergrund ablaufen. Das heisst: sobald eine entsprechende Datei geändert/hinzugefügt/gelöscht wird, sollte das Hochladen/Synchronisieren automatisch erfolgen. Gleiches Spiel bei Ordnern (Verzeichnissen).
Wie kann man also Ordner und Dateien automatisch online synchronisieren? Und das automatisch, sobald eine Datei geändert oder neu zu einem Verzeichnis hinzugefügt wird?
Händisch ist das sehr aufwendig und Zeit raubend.
Nach einigen Tests mit CaptainFTP und dem zusätzlichen Programm CrowzNest (überwacht Ordner und lädt im Hintergrund mit CaptainFTP die Dateien auf den FTP-Server); Mac OS X Ordnerüberwachung mit gekoppeltem AppleScript, Automator, usw. …
…bin ich bei folgender Lösung gelandet. Alles andere funktionierte nie so, dass es nicht dauernd kontrolliert und neu gestartet werden musste. Also sehr unzuverlässig.
[CaptainFTP und seine Kompagnons gibt es mittlerweile (2022) schon gar nicht mehr.]Was passiert während des Arbeitsablaufs (Workflow)? Hier ein kurzer Überblick:
- per Launchd-Services wird der entsprechende Ordner und/oder die Datei überwacht
- ein AppleScript wird bei Änderungen des Ordners oder der Datei gestartet
- Transmit lädt die Dateien auf den FTP-Server hoch
- im Kundenbereich organisiert ein Skript die Darstellung (Auflistung) und das Herunterladen der Dateien
Wie prüft man mit den Launchd-Services Ordner und Dateien auf Änderungen?
Das funktionierte für mich am besten mit dem Programm LaunchControl (eigentlich kostenpflichtig; funktioniert aber erstmal auch ohne zu bezahlen). Es gibt noch Lingon. Das hat leider nicht so gute Einstellungsmöglichkeiten per grafischer Oberfläche, und funktioniert auch nicht so zuverlässig. Jedenfalls in der Umgebung in der der Arbeitsablauf eingerichtet werden musste.
Man kann die Datei natürlich auch von Hand anlegen/bearbeiten. Wer es möchte … mir war der Weg mit benutzerfreundlicher Klickoberfläche lieber.
Über LaunchControl habe ich dann Launchd-Jobs angelegt, die die entsprechenden Verzeichnisse oder eine einzelne Datei auf Änderungen prüft. Sobald eine Datei geändert, hinzugefügt oder auch nur das Verzeichnis geöffnet wird, startet die Synchronisierung.
Über Watch paths kann man Verzeichnisse und Dateien überwachen. Eine Überwachung am besten wie im unteren Bildschirmfoto gezeigt zusammen stellen. Allerdings hatte ich nach einigen Tests festgestellt, dass es durchaus auf einem anderen System leicht anders aussehen kann.
Unter Mac OS X Snow Leopard und auch El Capitan lief und läuft (2022) es immer noch wie unten gezeigt am besten und eben zuverlässigsten.
Ganz Wichtig!
Bei Program to run nicht auf die .app verlinken. Den Paketinhalt anzeigen lassen und auf das Applet darin verlinken. Das AppleScript kann hieraus nicht direkt gestartet werden.
Die Konfiguration mit Lingon sieht ähnlich aus
Die Synchronisierung
Über die Launchd-Services wird jeweils ein AppleScript gestartet, welches Transmit (FTP-Client) mit der Synchronisation der Dateien auf dem Server beauftragt. Es werden auch nur die Dateien hochgeladen, die verändert wurden. Das funktioniert mit Transmit ganz hervorragend.
Transmit benutze ich auch, wenn es darum geht, diverse Skripte im Internet zu aktualisieren. Der Abgleich, was alt aufm Server ist, und gegen lokale Dateien ausgetauscht werden muss, funktioniert wirklich wunderbar. Ist zum Beispiel bestens dazu geeignet, CMS-Skripte aktuell zu halten, die keine integrierte Aktualisierungs-Option eingebaut haben.
Das AppleScript
Die ursprüngliche Version hab ich mir hier besorgt. Das funktioniert so schon richtig gut. Auch als Ordneraktion.
Für meinen Fall musste ich es aber nocht etwas anpassen;
- das Skript soll prüfen, ob ein gewisses Server-Volume schon vorhanden (auf dem Schreibtisch angemeldet) ist
- wenn nicht: das Volume holen, etwas warten und das Skript neu starten
Mein AppleScript-Wissen war/ist leider etwas eingerostet. Ich weiss nicht, ob man es mit den eingebauten Schleifen nicht noch etwas optimieren kann. Wer mag kann das. Freu mich über Tipps und/oder eine neue Version des Skriptes. Ansonsten kann jeder das vorhandene Skript benutzen/erweitern/verbreiten wie er grad Lust und Zeit hat.
Sofern das unter der GNU General Public Lizenz erfolgt.
Oder eben die Einstellungen (sind im Skript markiert) anpassen und selbst verwenden.
Hier kann man es herunter laden (die neue Version 1.1 ist seit dem 2. Februar 2016 online; neu ist eine zusätzliche Schleife, die verhindert, dass das Server-Volume zu oft geholt wird).
Vielleicht hilft es ja bei der einen oder anderen Problemlösung.
Manchmal kommt es zu Problemen (wofür ich keine Problemlösung im Skript habe):
- wenn das Volume sich nicht einhängen (anmelden) lässt und eine zu lange Schleife entsteht (ich denke, das habe ich mit der Version 1.1 behoben)
- die Verbindung zu einem FTP-Server nicht funktioniert
Aber meistens (in 97% der Fälle) läuft es zuverlässig. Bei den oben genannten Problemen hilft etwas Geduld. Die Skripte beenden, Transmit ebenso. Etwas warten, denn der Prozess läuft ja im Hintergrund, und sollte bald erneut starten. Auf jeden Fall zu dem Moment, sobald etwas in den angegebenen Pfaden verändert wird.
Dieses Skript und Ideen zu den LaunchdJobs werden in der Hoffnung zur Verfügung gestellt, dass es hilfreich und nützlich sein kann. Ohne Garantie. Also am besten nicht gleich in laufende Arbeitsabläufe integrieren. Besser in einer Testumgebung.
-- AppleScript - Transmit - synchronize a local directory to an FTP directory
-- Copyright (C) 2010 Lincoln Mullen / (C) 2022 Marco Dinkel
-- Released under the GPL. See README.
doit(true)
on doit(theTransmit)
if theTransmit then
tell application "System Events" to set diskNames to name of every disk
if "daten" is in diskNames then
-- display dialog "Startbereit!"
tell application "Transmit"
-- Prevent interactive alerts from popping up during script execution
set SuppressAppleScriptAlerts to true
-- CONFIGURATION - edit what you need to below
-- replace "LincolnMullen" with the name of your favorite
set remoteFavorite to item 1 of (favorites whose name is "Upload-Lesezeichen")
-- replace everything in between "" to the remote path you want to sync TO
set remotePath to "/wp-content/uploads/"
-- replace everything in between "" to the local path you want to sync FROM
set localPath to "/Users/admin/Documents/"
-- END CONFIGURATION
-- set a variable naming all the skip rules that are enabled in Transmit preferences
set myRules to (skip rules whose enabled is true)
-- Create a new window (and thus a single tab) for this script
tell current tab of (make new document at end)
-- Go into the local and remote folders that we want to sync.
change location of local browser to path localPath
connect to remoteFavorite
change location of remote browser to path remotePath
-- Run a sync from the current local folder to the current remote folder
synchronize local browser to remote browser using skip rules myRules with automatically determine time offset
-- Close the current window
close
end tell
end tell
else
-- es muss erst die Windows-Platte geholt werden
-- wenn sie nicht schon da ist und nicht mehrfach geholt werden soll
-- mount volume "afp://NAS01._afpovertcp._tcp.local/windows_daten"
mount volume "smb://file-srv/daten"
-- Sicherheitspuffer: bis die Platte auf dem Schreibtisch erscheint
delay 30
-- Neustart des Skriptes
doit(theTransmit)
end if
else
-- Beenden
doit(false)
end if
end doit
Das ist nur ein Weg, wie man Ordner und Dateien automatisch online synchronisieren kann…
…es gibt noch einige weitere Möglichkeiten: mit GoodSync kann man sich z. B. auch recht schnell einen stabilen Workflow zusammen klicken, der lokale Verzeichnisse mit so allerhand Online-Verzeichnissen und Wolken synchronisiert…
Der Beitrag und das AppleScript wurden am Freitag, 11. Februar 2022 aktualisiert.
Und der Workflow funktionieret unter macOS Catalina und Transmit in der Version 5 weiterhin tadellos.
Freizeitsport-Aktivitäten speichern … und irgendwann umziehen
In einem Android-Magazin war mal eine kostenlose Version von Runtastic mit dabei. Ich weiss nicht mehr welches Heft. Ich kauf die unterschiedlichsten Magazine, in recht komischen Intervallen, bei uns am Bahnhof im gut sortierten Kiosk.
Jedenfalls war das kostenloses Runtastic (nicht die Pro-Version; obwohl mit Auto-Pause-Funktion) im Winter (oder Spätherbst) 2014 mit dabei. Ab da hatte ich viele meiner Aktivitäten mitm Rad und auch zu Fuss aufgezeichnet. Eben auch, weil mich seit Asterix und Kleopatra Statistiken irgendwie begeistern, und damit ich weiss, was ich so geleistet hab (damit ich es schriftlich und schwarz auf weiss hab).
Das mach ich allerdings nicht öffentlich. Nur für mich also.
Runtastic ist ganz nett. Aber irgendwie auch nervig. Vor allem, wenn man kein Premium-Mitglied ist. Support zu erhalten ist unmöglich.
Jedenfalls funktioniert das mit der Auto-Pause im Zusammenspiel mit meinem Sony Xperia Z1 Compact fast nie. Besser gesagt: gar nicht. Das verwässert dann die eigentliche Statistik recht stark. Auch scheint mir die eigentlich Streckenaufzeichnung fehlerhaft. Im Vergleich – mit einer zusammengeklickten Strecke bei gpsies.com –, fehlt mindestens ein Kilometer.
Also hab ich mir jetzt endlich mal die Mühe gemacht und recherchiert, wie ich all die Aktivitäten von Runtastic in ein anderes Programm kriegen könnte. So der Vollständigkeit halber.
Früher habe ich meine Strecken in gpsies.com nachträglich zusammen geklickt. Das ist natürlich sehr aufwendig. Deswegen hab das immer nur bei besonderen Touren gemacht.
Man kann aus Runtastic (Web) die Touren auch exportieren und somit in einem anderen Programm wieder importieren. Auch sehr aufwendig.
Per Zufall bin ich dann kürzlich über einen Bericht gestolpert, der SyncMyTracks vorstellte. Genau das, was ich suchte: Ein Programm, welches den Im- und Export automatisiert.
Das hab ich jetzt mal mit Runtastic nach Endomondo versucht. Der erste Test, ob diese Aufzeichnungs-App besser funktioniert.
Den ersten Fehler, den ich machte: Ich hatte die Synchronisierung in beide Richtungen eingerichtet. Da ist irgendwie eine Schleife entstanden und ich hatte viele Aktivitäten doppelt drin. Einige der normalen Radtouren waren plötzlich eine Rennradtour usw. Sowohl bei Runtastic und auch Endomondo. Beim anschliessenden händischen Säubern (aufwendig) hab ich dann wohl auch einige Aktivitäten gelöscht (nervig).
Darauf hab ich Endomondo komplett geleert. Wenn man sein Konto nicht aufgeben will, muss man jede Aktivität einzeln löschen. Oder man löscht eben das eingerichtete Konto komplett und startet neu. Geht ja noch, sofern man nicht gleich zahlendes Mitglied wird.
Vielleicht gibt es auch einen Trick, wie man alle Aktivitäten auf einmal löschen kann. Hab ich aber nichts zu gefunden. Weder bei Runtastic oder Endomondo. Würde mich über Tipps freuen.
Dann bin ich es anders angegangen. Erstmal alles von Runtastic importieren und nach Endomondo weiterschicken. Damit der Grundstamm da ist. Und nur alle neuen Aktivitäten synchronisiert werden.
Da ist mir dann unbewusst der zweite Fehler passiert: Ich hab den Export/Import als komplettes Archiv von Runtastic in die App und weiter nach Endomondo auf einmal gestartet. Es brach immer ab und liess ein Kuddelmuddel in Endomondo zurück. Wahrscheinlich war die Internet-Verbindung zu schwach. Also wieder löschen und neu anfangen.
Aber dieses Mal in kleineren Schritten. Den Im- und Export kann man auch auf bestimmte Zeitspannen eingrenzen. Monats- oder jahresweise. Oder eben noch kürzer. Das hatte dann ganz wunderbar funktioniert. Und ich hatte bald alle Runtastic-Aktivitäten in Endomondo.
Der Test, ob neue Aktivitäten zwischen den Konten synchronisiert werden, hatte eigentlich auch super funktioniert. Eine von Endomondo nach Runtastic exportierte Aktivität hatte zuerst einen fehlenden Wert bei den maximalen Höhenmetern … wurde aber irgendwann später aktualisiert (ein Tag etwa).
Jetzt muss mal schaun, welche App gut (passender) für mich ist. Hauptsächlich auch wegen der Auto-Pause. Und welcher Service korrekter (politisch korrekt wird wohl kaum einer sein).
Und obwohl bei mir alles auf nicht-öffentlich gesetzt ist, kann ich wohl keinem trauen.
Wer weiss.
Aber meine Krankenkasse sollte sich doch freuen, dass ich mich wenigstens etwas bewege ;-)
Gibt’s da eigentlich Bonuspunkte liebe Barmer GEK?