Kabelitzens - Der Blog

Szenen aus dem Leben

Lightroom auf zwei Computern nutzen

Wer, wie wir, in einem Haushalt lebt, in dem zwei Menschen gerne Fotografieren, der wird sicher auch eine Software haben, um diese Unmengen an Daten zu verwalten. Bei uns hat sich als Bildverwaltungsprogramm vor einigen Jahren Lightroom eingeschlichen. Wir sind damit in der Regel ganz zufrieden und nutzen es gerne für Bildbearbeitungen und die Katalogisierung.

Mit einer Lightroom-Lizenz erlaubt Adobe die Nutzung auf zwei Computern. Das ist gut. Leider wird es schwieriger, wenn man wie wir auf den gleichen Bilderbestand zugreifen will. Dieses Themas widmet sich dieser Eintrag und stellt gleich auch unsere Lösungsstrategie vor. Diese ist einfach und kann von eigentlich jedem mit Windows problemlos genutzt werden.

Nach einigen Überlegungen und Nachforschungen gibt es keine gute Lösung, die Adobe selber anbietet. Im Internet kursieren einige Anleitungen, die eine Zwischenlösung darstellen, aber auch eher fummelig sind.

Unser Setup sieht so aus, dass wir einen Desktop-PC, einen Laptop und eine NAS besitzen (es geht wahrscheinlich auch ohne NAS). Dass die Bilddaten auf der NAS im Netzwerk liegen, ist die naheliegende Lösung für die Daten, damit diese nicht ständig kopiert werden müssen. Leider erlaubt Lightroom nicht den Katalog (dort sind die Fotos gelistet und die Bearbeitungen hinterlegt) auf einem Netzlaufwerk zu haben. Schade und da fangen die Probleme und zahlreichen Lösungen an.

Lightroom auf zwei Computern

Da wir uns den Kopieraufwand und die benötigten Schritte sparen wollen, haben wir folgende Lösung ausgedacht. Die Bilddaten, wie gesagt, liegen im Netzwerkspeicher. Dieser Netzwerkspeicher ist als Netzwerklaufwerk bei beiden Computern eingebunden. Mit einem eigenem Buchstaben. Das geht unter Windows sehr einfach.

Die wichtigen Dateien und Ordner für Lightroom sind folgende (* = dein Katalogname):

  • der Katalog, eine Datei mit der Endung *.lrcat
  • der Preview-Ordner, ein Ordner mit der Endung * Peviews.lrdata
  • der Smart Preview-Ordner mit der Endung * Smart Previews.lrdata

Diese Ordner sind müssen auf den Rechnern synchronisiert werden, damit alles auf dem gleichen Stand ist. Um die Synchronisation aktuell zu halten ohne es ständig selber kontrollieren zu müssen habe ich ein Skript geschrieben, das auf jedem Windows-Rechner ab XP ausgeführt werden kann. Das Skript kann mit jedem Notepad oder Editor geändert werden.

ACHTUNG! Bevor das Skript ausgeführt wird, unbedingt ein Backup machen! Ich übernehme keine Haftung, dass alles, wie hier beschrieben funktioniert! 

Die Idee ist das Windows eigene Kopiertool zu nutzen. Es heißt ROBOCOPY (Robust File Copy). Es erlaubt eine komplexe Struktur mit minimalen Aufwand zu kopieren. Das Skript gibt es hier: syncLightroom. Es ist eine Textdatei, damit man sie einfacher öffnen kann. Wenn die entsprechenden Einträge gesetzt sind, kann man sie unter *.bat speichern oder die Endung *.txt in *.bat umbenennen.

Als lege ich Variablen an, in denen die Pfade zu meiner Lightroom-Installation und der Name des Katalogs stehen. Danach kommen die Variablen, die für die Pfade auf der NAS (dem Speichermedium) und die Lightroom-working-Location auf dem Computer stehen. Dieser Teil muss für beide Computer separat eingestellt werden, da sie z.B. die NAS mit einem anderen Buchstaben eingebunden haben oder die Working-Location von Lightroom eine andere ist. Das sind schon die Einträge die gemacht werden müssen. Der Rest des Skriptes nutzt diese Einträge. Achte darauf, dass sie richtig gesetzt sind.

@rem absolute path to lightroom installation
SET LRPATH="path\to\lightroom.exe"
SET CATALOGUE="catalogue_name.lrcat"

@rem files to sync on NAS
SET NASPATH="network\location\for\image\data"
SET NASPREVIEWS="network\location\of\Previews.lrdata"
SET NASSMARTPREVIEWS="network\location\of\Smart Previews.lrdata"

@rem files to sync on PC
SET PCPATH="path\to\catalogue\location"
SET PCPREVIEWS="path\to\Previews.lrdata"
SET PCSMARTPREVIEWS="path\to\Smart Previews.lrdata"

Im zweiten Schritt muss eigentlich nichts getan werden. Das Skript kontrolliert, welches der neuere Katalog ist, falls ihr in eurer Computer-Kopie etwas geändert habt, soll es ja nicht mit der Kopie aus dem Netzwerkspeicher überschrieben werden. Es wird auf das Datum geprüft und in dem Fall, das die Computer-Kopie jünger ist, nachgefragt, ob man das wirklich machen will. Gibt man N(ein) ein, wird der Vorgang abgebrochen. Bei Y(es) wird kopiert.

@rem system call
@SETLOCAL EnableDelayedExpansion

@rem sync only if NAS catalogue newer than on PC
@CALL :joinpath %NASPATH% %CATALOGUE%
SET NASCATALOGUE=%RESULT%
@FOR %%i IN (%NASCATALOGUE%) DO SET DATE1=%%~ti
@CALL :joinpath %PCPATH% %CATALOGUE%
SET PCCATALOGUE=%RESULT%
@FOR %%i IN (%PCCATALOGUE%) DO SET DATE2=%%~ti
@IF "%DATE1%"=="%DATE2%" ECHO Files have same age && GOTO :END
FOR /F %%i IN ('DIR /B /O:D %NASCATALOGUE% %PCCATALOGUE%') DO SET NEWEST=%%~fi
ECHO Newer file is %NEWEST%
IF %NEWEST%==%PCCATALOGUE% CHOICE /M "The catalogue on PC is newer. Do you want to overwrite?"
IF %ERRORLEVEL%==1 GOTO :END
IF %ERRORLEVEL%==2 GOTO :EOF
:END

Der folgende Abschnitt kopiert die besagten drei Dateien/Ordner in eure Working-Location auf dem Computer. Dabei werden nur Dateien kopiert, die neu oder verändert wurden. Das sollte beim ersten Mal starten etwas länger dauern (abhängig von eurer Kataloggröße). Danach geht es deutlich schneller, da meist nur der Katalog und nicht mehr die Previews kopiert werden müssen. Die Parameter für ROBOCOPY könnt ihr unter dem Link oben nachlesen. Es geht grundsätzlich darum, nur die neueren Dateien zu kopieren, Links und Shortcuts auszulassen (X/J), nach Unterbrechungen weiter zu kopieren (/Z) und maximal 10 Sekunden (/W:10) zu warten bevor ein einziges Mal (/R:1) ein fehlgeschlagender Kopiervorgang nicht durchgeführt werden konnte. /FFT passt die Dateien an das FAT-Dateisystem an.

@rem syncing folders and files from NAS to Working folder on PC
@rem copy lightroom catalogue
ROBOCOPY %NASPATH% %PCPATH% %CATALOGUE% /TEE /Z /R:1

@rem copy existing smart previews
ROBOCOPY %NASSMARTPREVIEWS% %PCSMARTPREVIEWS% /TEE /XJ /Z /FFT /E /R:1 /W:10 /XA:H

@rem copy existing previews
ROBOCOPY %NASPREVIEWS% %PCPREVIEWS% /TEE /XJ /Z /FFT /E /R:1 /W:10 /XA:H

Das nächste Stück Skript öffnet Lightroom mit dem kopierten Katalog. Lightroom kann wie gewohnt verwendet werden .Es wartet dann (/wait) bis fertig gearbeitet wurde und Lightroom geschlossen wird. Dabei sollte man aufpassen, dass Lightroom mit dem Schreiben aller Dateien fertig ist, da sonst etwas verloren gehen könnte.

@rem working with lightroom with sync catalogue
@CALL :joinpath %PCPATH% %CATALOGUE%
START /b /wait "" %LRPATH% %RESULT%

Nachdem Lightroom geschlossen wurde, werden der Katalog und die Ordner, wenn etwas geändert wurde, zurück auf das Laufwerk kopiert. Die Befehle sind die gleichen wie oben; nur in verkehrter Reihenfolge. Am Ende springt das Skript zum Ende des Dokumentes, da darunter die Funktionen folgen, die nicht noch einmal ausgeführt werden sollen.

@rem syncing folders and files from PC to storage folder on NAS after closing lightroom
@rem copy lightroom catalogue
ROBOCOPY %PCPATH% %NASPATH% %CATALOGUE% /TEE /Z /R:1

@rem copy existing smart previews
ROBOCOPY %PCSMARTPREVIEWS% %NASSMARTPREVIEWS% /TEE /XJ /Z /FFT /E /R:1 /W:10 /XA:H

@rem copy existing previews
ROBOCOPY %PCPREVIEWS% %NASPREVIEWS% /TEE /XJ /Z /FFT /E /R:1 /W:10 /XA:H

rem finish the file
GOTO :EOF

Dies ist eine nützliche Funktion, die ich auf Stackoverflow gefunden habe, um aus Pfaden und Dateien die vollständigen Pfade zu erstellen. Wie sicher schon bemerkt, mache ich in diesem Skript davon Gebrauch.

rem function to create paths
:joinpath
@SET PATH1=%~1
@SET PATH2=%~2
@IF {%PATH1:~-1,1%}=={\} (SET RESULT=%PATH1%%PATH2%) ELSE (SET RESULT=%PATH1%\%PATH2%)
@GOTO:EOF

:EOF

Das ganze Skript lege ich in meiner Working-Location ab. Um es auszuführen benötigt man unter Umständen Administratorenrechte. Für das schönere Aussehen, habe ich ein Shortcut oder Verknüpfung gemacht, die ich mit einem Lightroom-Icon versehen habe. So habe ich mein gewohntes Icon und kann mit einem Doppelklick den ganzen Prozess auslösen und muss nicht weiter interagieren.

Damit ist das Skript einfach und handlich. Selbst für Leute, die sich nicht so sicher sind mit Skripten.

Vielen Dank für Inspirationen an:

SYNC – EIN LIGHTROOM-KATALOG AUF ZWEI RECHNERN

How to use robocopy in Windows for backup and sync like rsync in Linux

Wie ist eure Lösung zu der Problematik, dass Lightroom keine Netzwerkkataloge zu lässt? Hast du das Skript ausprobiert oder Fragen?

Wende dich einfach in den Kommentaren an mich und ich hoffe, dass ich helfen kann.

Zurück

Kompost für den Balkon

Nächster Beitrag

März-Buch: Getting Things Done von David Allen

  1. Michael

    Hallo, habe gerade langer experimentiert…mir scheint da die Option “ /S “ =(Unterverzeichnisse mit kopieren) bei Zeilen zum Verzeichnis sync zu fehlen. Nun scheint es zu funktionieren

    • Gordian

      Hallo,
      bei uns sind bisher keine Probleme aufgetaucht. Es könnte daran liegen, dass es egal ist, ob Previews für Fotos erstellt werden. Für uns ist der Katalog wichtig. Ich denke, wenn man Previews ebenso auf beiden Computern sehen will, diese kopieren kann. Allerdings sind wir zwei Personen an zwei Rechnern und haben nicht immer die gleichen Bilder im Fokus. Für dich ist scheinbar die Synchronisation der Previews wichtig. Daher macht es Sinn diese mitzukopieren. Ich hoffe, dass ich das richtig verstehe und damit müsste in allen Zeilen, in denen das SmartPreview- oder Preview-Verzeichnis kopiert wird ein „/S“ hinzugefügt werden. Vielen Dank für deinen Hinweis. Ich werden gleich das im Script ergänzen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

13 − 2 =

* Die DSGVO-Checkbox ist ein Pflichtfeld

*

Ich stimme zu

Präsentiert von WordPress & Theme erstellt von Anders Norén