Aus Linux-Magazin 09/2019

Tools und Skripte für Vielknipser

© besjunior, 123RF

Autor und Amateurfotograf Dmitri Popov hat einen Satz Skripte entwickelt, um für sein bildendes Schaffen einen flüssigen Fotografie-Workflow auf Linux-Basis einzurichten.

Ein fotografischer Workflow besteht meist aus mehr, als nur ein Fotoverzeichnis anzulegen und Raw-Dateien zu bearbeiten. So gilt es etwa, die Raw-Dateien und Fotos auch unterwegs zu sichern und einen Workflow parat zu haben, um die besten Arbeiten schnell im Internet zu veröffentlichen.

Tools zu entwickeln, die einen reibungslosen Arbeitsablauf beim Fotografieren gewährleisten, macht mir fast so viel Spaß wie das Fotografieren selbst. Daher arbeite ich seit Jahren an und mit simplen Anwendungen und freien Skripten, die ich täglich verwende. Der Artikel beschreibt die verwendeten Helfer.

Backups unterwegs

Viele spektakuläre Fotografien entstehen auf Reisen. Daher ergibt es durchaus Sinn, Fotos und Raw-Dateien auch unterwegs zu sichern. Selbst wenn die Kamera über zwei Kartensteckplätze verfügt, hilft ein separates Backup auf einem weiteren Speichermedium. Wer sich nicht scheut Geld auszugeben, kann ein Gerät wie die WD My Passport Wireless SSD anschaffen. Neben dem Preis hat dies ansonsten clevere Gerät aber einen Nachteil: Es lässt sich nicht optimieren, ausbauen oder mit Updates versehen.

Theoretisch können Fotografen auch den Speicher solcher Geräte aufrüsten. Das erfordert allerdings fortgeschrittene Kenntnisse im Hardware-Basteln und führt mit einiger Sicherheit zum Erlöschen der Garantie. Stirbt zudem der Akku im Gerät, bleibt ein teurer Briefbeschwerer zurück.

Um die funktional beschränkten, kommerziellen Produkte zu umgehen, habe ich Little Backup Box [1] geschrieben. Diese Skriptsammlung verwandelt einen gewöhnlichen Raspberry Pi in ein mobiles Foto-Archiv. Als Betriebssystem darunter läuft ein Debian-basiertes Raspbian Lite [2]. Die Skripte zu Little Backup Box holen Nutzer direkt nach der Installation des Betriebssystems aus dem Internet.

Sich für die Do-it-Yourself-Lösung zu entscheiden, bringt einige Vorteile. Raspbian Lite ist eine ausgereifte und erprobte Open-Source-Lösung. Wer sich ein wenig auskennt, passt die Skripte zudem an die eigenen Bedürfnisse an. Er kann etwa eine (auf Wunsch verschlüsselte) Cloud-Backup-Möglichkeit integrieren, Hardware-Buttons ergänzen, um Backups zu triggern, und so weiter.

Abbildung 1: Little Backup Box lässt sich mit einer Powerbank betreiben und per Webinterface kontrollieren.

Abbildung 1: Little Backup Box lässt sich mit einer Powerbank betreiben und per Webinterface kontrollieren.

Zugleich ist die Hardware im Gegensatz zu kommerziellen Festplatten recht günstig und überall verfügbar. Hinzu kommt, dass der Anwender defekte Komponenten günstig austauscht und den Speicher problemlos erweitert. Mit dem Raspberry Pi Zero lässt sich sogar eine Lösung für die Jackentasche entwickeln, die eine kleine Powerbank antreibt (Abbildung 1). Wer etwas mehr Performance braucht, greift zum Raspberry Pi 3 oder 4.

Handlicher Raspi

Um das beschriebene Foto-Backup-Device zu bauen, braucht der Anwender vier Dinge: einen Raspberry Pi, eine Powerbank oder feste Energieversorgung, einen großen USB-Speicher und eine Micro-SD-Karte. Auch konventionelle Festplatten und SSDs funktionieren mit dem Raspberry Pi, brauchen aber mitunter eine eigene Stromversorgung.

Drei Schritte verwandeln den Raspberry dann in eine Little Backup Box. Zunächst schreibt der Nutzer das Raspbian-Lite-System auf eine bootbare SD-Karte. Von der bootet er im zweiten Schritt und richtet Raspbian Lite über das mitgelieferte »raspi-config«-Tool ein. Dazu gehört auch, die Datei »/etc/wpa_supplicant/wpa_supplicant.conf« so einzurichten, dass sich der Raspberry mit dem WLAN verbindet. Im dritten Schritt lädt

curl -sSL https://raw.githubusercontent.com/dmpop/little-backup-box/master/install-little-backup-box.sh | bash

die Skripte für Litte Backup Box herunter und installiert sie. Das war’s.

Little Backup Box unterstützt drei Modi für Backups: Mit dem Karten-Backup-Modus sichert der Nutzer automatisch den Inhalt einer Speicherkarte auf einem externen Speichermedium. Der Kamera-Backup-Modus kopiert Fotos, Raw-Dateien und Videos von der direkt mit dem Raspberry Pi verbundenen Kamera auf das Speichergerät. Der Fernbedienungsmodus erlaubt über eine Weboberfläche Zugriff auf alle Funktionen.

Während es die ersten beiden Modi ermöglichen, Sicherungsvorgänge auch bequem ohne Benutzerinteraktionen zu erledigen, kommt der Fernsteuerungsmodus zum Einsatz, wenn der Anwender einen der beiden anderen Modi manuell aktivieren möchte. Unter anderem erlaubt es dieser Modus, DLNA- und Samba-Server zu aktivieren, Systeminformationen zu betrachten oder den Raspberry Pi herunterzufahren.

Beim Installationsprozess fragt der Installer, welchen Modus der Anwender standardmäßig verwenden möchte. Wer Little Backup Box ausschließlich als Backup-Gerät einsetzen will, sollte sich für den Karten- oder Kamera-Backup-Modus entscheiden. Wer hingegen den Zugriff auf alle verfügbaren Features bevorzugt, greift am besten zum Fernsteuerungsmodus.

Um die Box in den ersten beiden Modi zu betreiben, genügt es, einen Kartenleser mit eingeschobener SD-Karte (Karten-Backup-Modus) oder die Kamera (Kamera-Backup-Modus) mit dem Gerät zu verbinden. Der Backup-Prozess startet dann automatisch und der Raspberry fährt herunter, sobald der Prozess abgeschlossen ist.

Abbildung 2: Die Weboberfläche für Little Backup Box im Einsatz.

Abbildung 2: Die Weboberfläche für Little Backup Box im Einsatz.

Betreibt der Anwender den Raspberry Pi im dritten Modus (Fernsteuerungsmodus), meldet der sich mit seiner fest konfigurierten IP-Adresse beim vorkonfigurierten WLAN-Accesspoint an. Der Nutzer gibt dann die IP-Adresse des Raspberry Pi gefolgt vom Port »8000« in die Browser-URL-Leiste ein: »http://IP-Adresse:8000«. Daraufhin sollte die Weboberfläche von Little Backup Box erscheinen (Abbildung 2). Das Gerät mit dem Browser und der Raspberry Pi müssen sich dafür allerdings im selben Netzwerk befinden.

Otto räumt auf

Geht es darum, Raw-Dateien und Fotos von einer Speicherkarte oder direkt von der Kamera auf den Rechner zu importieren, stehen mehrere Tools bereit. Die reichen vom extra dafür zuständigen Rapid Photo Download [3] über den Shotwell-Importer bis hin zum Import-Modul von Digikam. Mir genügen diese Tools aber nicht in jedem Fall.

Ich sichere zum Beispiel wichtige Informationen über das Foto gern im Kommentarfeld der Exif-Metadaten. Dazu zählen etwa das Kameramodell, das verwendete Objektiv und die Wetterbedingungen. Betrachte ich das Foto später in Digikam, sehe ich sofort, welche Kamera-Objektiv-Kombination ich verwendet habe und wie das Wetter an dem Tag war.

Ich wollte mit Bordmitteln den Importprozess ausweiten, damit der Import die Dateien nicht nur auf den Rechner kopiert, sondern sie auch umbenennt, nach dem Datum organisiert und mit Geotags versieht. Die erwähnten Tools genügen diesen Anforderungen nicht immer.

Mein Otto getauftes Shellskript [4] dagegen erledigt das fast ohne Benutzerinteraktion. Beim ersten Lauf fordert es den Benutzer auf, das Zielverzeichnis für den Transfer der Raw-Dateien und Fotos anzugeben, eine Copyright-Mitteilung, einen Key für das Wetterdienst-API Dark Sky [5] und einen Notify Key [6] anzulegen. Letzteren setzt der Anwender ein, um per Skript Nachrichten an eine Android-App zu schicken.

Anschließend lässt sich Otto einfach nutzen, um die Dateien von der Speicherkarte auf den Raspberry Pi zu transferieren. Dazu hängt der Nutzer einen Kartenleser an diesen, mountet die Karte und notiert sich den »Pfad_zur_Karte«. Über

./otto.sh /Pfad_zur_Karte Option

lässt sich das Skript dann ausführen. Spart der Anwender die »Option« ein, vermutet das Skript, dass er die Fotos bereits mit Geotags versehen hat.

Ist dies nicht der Fall, hat er drei Möglichkeiten. Über »-g Ort_der_Aufnahme« startet er ein recht grobes Geotagging. Er gibt dann zum Beispiel den Namen der Stadt ein, in der das Foto entstanden ist. Wer eine GPX-Datei mit den Geodaten besitzt, gibt dem Skript den Parameter »-c« mit auf den Weg, gefolgt vom Pfad zu dieser GPX-Datei. Das Skript führt dann Fotos und Geotags zusammen.

Wer verschiedene GPX-Dateien besitzt, die mehrere Tage abdecken, verwendet die Option »-m« und gibt dann den Pfad zu dem Ordner mit den GPX-Dateien an. Das Skript bindet nun zuerst die GPX-Dateien ein, bevor es mit der geografischen Zuordnung der Bilder beginnt.

Hat das Skript die Raw-Dateien und Fotos transferiert, holt es die benötigten Informationen und schreibt sie, zusammen mit der angegebenen Copyright-Mitteilung, in die passenden Felder der Exif-Metadaten. Ist dieser Vorgang abgeschlossen, benennt das Skript die übertragenen Dateien um und organisiert sie nach dem Datum. Hat der Anwender einen Notify Key hinterlegt, schickt ihm das Skript zudem eine Nachricht auf sein Android-Handy, das über den abgeschlossenen Prozess informiert.

Um das Skript zu installieren, lädt der Anwender es entweder von der Projektseite [4] herunter. Oder er verwendet Git:

git clone https://gitlab.com/dmpop/otto.git

Um das Skript »otto.sh« systemweit ausführen zu können, schiebt er es unter Open Suse in das Verzeichnis »~/bin«. Auf den meisten anderen Distributionen macht er »otto.sh« über die folgenden drei Befehle systemweit zugänglich:

sudo cp otto.sh /usr/local/bin/otto
sudo chown root:root /usr/local/bin/otto
sudo chmod 755 /usr/local/bin/otto

Anschließend installiert er noch die von dem Skript benötigten Pakete. Unter Open Suse gelingt das über:

sudo zypper in getopt bc jg curl ExifTool

Da beim Kopieren die Endung ».sh« verschwindet, lässt sich »otto« fortan ohne ».sh«-Erweiterung aufrufen.

In greifbarer Nähe: Konbini

Es gibt viele Gründe, KDE zu mögen. Einer ist die Möglichkeit, kontextabhängige Aktionen in den Dolphin-Dateimanager einzubauen. Wer zum Beispiel ein Foto im Dateimanager vergrößern und verkleinern möchte, legt eine Aktion im Kontextmenü an. Anschließend genügt es, mit der rechten Maustaste auf ein Foto zu klicken, um dessen Größe zu ändern. Auch Gnome bietet so eine Möglichkeit, wenn der Nutzer die Erweiterung »nautilus-image-converter« installiert. Für den Upload von Fotos in den eigenen Blog lässt sich auf diesem Wege ebenfalls eine passende Aktion anlegen.

Abbildung 3: Konbini erlaubt über das Kontextmenü im Dateimanager den schnellen Zugriff auf Fotos und Raw-Dateien.

Abbildung 3: Konbini erlaubt über das Kontextmenü im Dateimanager den schnellen Zugriff auf Fotos und Raw-Dateien.

Wer unter KDE keine eigene Aktion festlegen möchte, kann Konbini ([7], Abbildung 3) ausprobieren. Diese Kollektion vereint mehrere nützliche Aktionen für Foto-Workflows. Sie erlaubt es, Fotos zu skalieren, neu zu komprimieren, über Exif-Metadaten umzubenennen und Raw-Dateien in Fotos zu verwandeln. Zudem bringt Konbini Tools mit, um Fotos mit Kommentaren und Geotags zu versehen und bereits angebrachte Geolocations auf Openstreetmap zu betrachten. Nutzer von Open Suse, Debian und Ubuntu installieren Konbini über ein Installer-Skript:

curl -sSL https://https://gitlab.com/dmpop/konbini/raw/master/install.sh | bash

Der Befehl holt das Installationsskript auf den Rechner und führt es aus. Es installiert alle nötigen Pakete und Dateien auf dem Rechner. Wer beim direkten Ausführen fremder Skripte Bauchschmerzen hat, kann das Skript auch unter [8] zunächst ausgiebig inspizieren.

Gedächtnis auslagern

Auch wenn einige Leser Facebook hassen, bringt es doch einige nette Features mit, zu denen auch “Fotos aus der Vergangenheit” gehört. Jeden Tag zeigt Facebook ein Foto, das der Anwender genau vor einem Jahr online gestellt hat. Google Photos und andere derartige Dienste bringen ähnliche Funktionen mit. Was nur, wenn man diese Dienste nicht nutzen will, aber gern “Grüße aus der Vergangenheit” hätte?

In diesem Fall hilft Natsukashii [9] weiter. Das Tool besteht aus zwei Komponenten. Ein Bash-Skript findet Fotos, die auf den Tag genau in vergangenen Jahren entstanden sind. Ein PHP-Skript bereitet die Fundstücke zur Anzeige auf. Es stützt sich bei seiner Suche auf Standardtools von Linux-Distributionen, darunter Exiftool, Find, Sed, Seq und Imagemagick. Daher läuft Natsukashii auch auf nahezu allen modernen Linux-Distributionen. Mit wenig Arbeit lässt sich Natsukashii auch auf NAS-Geräten einsetzen.

Natsukashii installieren ist leicht. Wie bei Otto hilft wieder ein »git clone https://gitlab.com/dmpop/natsukashii.git« oder der Download des Skripts über die Webseite. Zusätzlich braucht der Nutzer einige Pakete auf dem Rechner, unter Open Suse sind es »exiftool«, »ImageMagick« und »php7«. Unter Ubuntu heißen die Pakete »imagemagick«, »libimage-exiftool-perl« und »php7.2«.

Der PHP-Teil von Natsukashii bietet zudem einen Passwortschutz. Anwender sollten das Standardpasswort ändern, bevor sie das Tool einsetzen. Sie modifizieren das Standardpasswort in den beiden Dateien »protect.php« sowie »login.php« im Verzeichnis »natsukashii/www«. Da der mit dem Server verbundene Passwortschutz allerdings recht simpel ausfällt, sollten User den Dienst besser nur im eigenen Netzwerk verwenden. Alternativ lässt sich auch ein Apache-Webserver verwenden und mit ».htaccess« absichern [10]. Dafür muss der Nutzer dann noch die Pfade anpassen.

Ähnlich wie Otto fordert Natsukashii den Nutzer auf, beim ersten Start ein paar Infos anzugeben, dann läuft das Skript ohne Benutzerinteraktion. Natsukashii erledigt den Job zwar, das aber nicht sonderlich schnell. Es durchforstet erst die Verzeichnisse nach Dateien mit Endungen wie »JPG«. Von jedem gefundenen Foto extrahiert es das Aufnahmedatum und vergleicht es mit dem aktuellen Datum. Dafür brauchen die eingesetzten Tools ihre Zeit, bei Tausenden Fotos auf der Festplatte kann das länger dauern. Eine Lösung ist, das Skript per Cronjob in der Nacht zu starten.

Abbildung 4: Natsukashii zeigt über eine simple PHP-Webseite Fotos aus der Vergangenheit an.

Abbildung 4: Natsukashii zeigt über eine simple PHP-Webseite Fotos aus der Vergangenheit an.

Es findet nicht nur die abgelegten Fotos, sondern ändert auch deren Größe und platziert sie im Verzeichnis »www«. PHPs eingebauter Server liefert sie dann auf dem zuvor angegebenen Port aus (Abbildung 4).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben