Sonntag, 9. November 2014

Wie sichere ich am besten meine Darktable Konfigurationsdateien sowie die Datenbank?

Der heutige Beitrag befasst sich mit der Sicherung der darktable Konfigurationsdateien sowie der dazugehörigen Datenbank.

Im letzten Beitrag habe ich erklärt, dass Änderungen an RAWs, nicht an der Datei selbst vorgenommen sondern in sidecar Dateien sowie in der darktable Datenbank gespeichert werden. Wobei die Datenbank (DB) aus Performance Gründung während der Laufzeit genutzt wird. Des Weiteren werden in der DB sogenannte Presets (Voreinstellungen) für Bearbeitungsmodule der Dunkelkammer (Darkroom) gespeichert, neben der DB nutzt darktable noch weitere Dateien, in denen Informationen wie Tastaturkürzel oder Styles* hinterlegt werden um all diese Einstellungen, zum Beispiel bei einer Neuinstallation, nicht zu verlieren ist ein Backup notwendig. 

*Styles sind eine Kombination aus verschiedenen Bearbeitungsmodulen die durch anwenden des Styles in Kombination auf das Bild angewendet werden. 

Bei uns kommt als Betriebssystem Ubuntu 14.04 (LTS) zum Einsatz die Befehle/Scripts lassen sich aber auch auf einem Debian ausführen. 

Als Voraussetzungen werden benötigt, zum einen sqllite3 und zum anderen ein Ordner, in dem die Sicherung abgelegt werden soll. Ich habe mich für einen Ordner mit dem Namen “backup”, der direkt im Home Verzeichnis abgelegt wird, entschieden. Falls ihr den Namen oder den Speicherort ändern möchtet, ist dies kein Problem nur muss dann der neue Name/Speicherort ebenfalls im Backupscript (Zeile 3) entsprechend angepasst werden. 

Mit den folgenden Befehlen wird sqlite3 installiert und das Sicherungsverzeichnis “backup” angelegt. Um die Befehle auszuführen öffnet ihr ein Terminal (Bei Ubuntu mit STRG+ALT+T) und führt die einzelnen Zeilen (ohne #) nacheinander aus.
#Install the sqlite3 prerequisite
sudo apt-get install sqlite3
#Go to the home directory of the current user
cd $HOME
#Create the folder “backup”
sudo mkdir backup
Damit das Backup ausgeführt werden kann brauchen wir noch eine Shellscript Datei, diese könnt ihr innerhalb des Terminals z.B. mit nano oder vi erstellen oder über die GUI mit einem Editor eurer Wahl. Wichtig ist nur das die Dateiendung .sh ist. Ich habe mir für meine Skripte im $HOME Verzeichnis einen Ordner mit dem Namen “scripts” angelegt. 
cd $HOME/scripts
nano backup_darktable_config_and_DB.sh
Falls die Sicherung nicht nur Lokal auf dem System, sondern auch auf einem NAS oder einer USB-Festplatte erfolgen soll, sehr zu empfehlen, müsst ihr bei den folgenden Zeilen Anpassungen vornehmen. 
Zeile 4: Das # Zeichen entfernen und einen sinnvollen Pfad eintragen
Letzte Zeile: Das # Zeichen entfernen
#!/bin/bash
#Variables
BackupDestinationLocal=$HOME/backup
#BackupDestinationExtern=Please insert something here! / Hier etwas sinnvolles eintragen!
DTLIB=$HOME/.config/darktable/library.db
DTNEWLIB=${DTLIB}-`date +%Y%m%d_%H%M`
ECHO=/bin/echo
SQLITE3=/usr/bin/sqlite3

#Go to darktable config folder and remove current backup
cd $HOME/.config/darktable/
rm -f library.db-*

#Backup darktable database
RESULT=`$ECHO .dump | $SQLITE3 $DTLIB | $SQLITE3 $DTNEWLIB`

if [ $? -eq 0 ]; then
$ECHO "Dumped $DTLIB to $DTNEWLIB"
else
$ECHO "FAILED to dump $DTLIB to $DTNEWLIB"
exit RESULT
fi

#Copy database backup and darktable config files to different locations
cd $HOME/.config/darktable/
cp -r styles $BackupDestinationLocal/styles-`date +%Y%m%d_%H%M`
cp darktablerc $BackupDestinationLocal/darktablerc-`date +%Y%m%d_%H%M`
cp keyboardrc $BackupDestinationLocal/keyboardrc-`date +%Y%m%d_%H%M`
cp $DTNEWLIB $BackupDestinationLocal
#cp -r $BackupDestinationLocal/* "$BackupDestinationExtern"
Damit ihr das Script anschließend auch benutzen könnt müsst ihr es noch ausführbar machen, dafür könnt ihr den nachfolgenden Befehl im Terminal benutzen. Gegebenenfalls ist der Speicherort und der Name der Datei anzupassen.
#Owner read/write/execute; Group read/write; other no permission
sudo chmod 760 $HOME/scripts/backup_darktable_config_and_DB.sh
Abschließend können wir das Script ausprobieren
cd $HOME/scripts
sudo ./backup_darktable_config_and_DB.sh
ls -alh $HOME/backup
Bei Fragen zu den Skripten oder bei Anregungen stehe ich gerne zur Verfügung.
Hinterlasst einfach einen Kommentar.

Keine Kommentare:

Kommentar veröffentlichen