Seafile Daten auf externe Festplatte verschieben

Seafile ist eine prima Lösung, um seinen eigenen privaten Cloud Storage zu betreiben. Für ein paar wenige User reicht es, einen Raspberry Pi als Server zu verwenden. Dieser braucht wenig Strom, kostet sehr wenig in der Anschaffung und nimmt nicht viel Platz weg. Das zu Grunde liegende Linux läuft auf einer SD Karte. Der Speicherplatz auf einer SD Karte kann jedoch schnell zu knapp werden und somit das Cloud Vergnügen trüben. Im Folgenden wird beschrieben, wie die kompletten Seafile Daten auf ein externes Medium verschoben werden können. Das kann eine externe Festplatte oder ein USB Stick sein. Die eigentliche Seafile Installation bleibt weiterhin auf der SD Karte. Das neue Datenmedium, welches mit ext4 formatiert sein sollte, muss erstmal dauerhaft gemountet werden.

Dazu muss das über den USB Port angeschlossene Laufwerk gefunden werden.

sudo fdisk -l

Für den Einhängepunkt wird ein neues Verzeichnis erstellt.

sudo mkdir -p /mnt/daten/seafile

Der Seafile User wird zum Besitzer des Verzeichnisses gemacht, um die benötigten Berechtigungen zu erhalten.

sudo chown -R seafile:seafile /mnt/daten/seafile

Das Laufwerk kann nun einmalig eingehängt werden. Der Gerätename „/dev/sda1“ muss hier natürlich an das eigene Laufwerk angepasst werden.

sudo mount /dev/sda1 /mnt/daten

Um es auch nach einem Neustart nutzen zu können, muss es automatisch gemountet werden. Dazu wird in der fstab ein Eintrag hinzugefügt.

sudo nano /etc/fstab
/dev/sda1 /mnt/daten ext4 rw 0 0

Bevor die Seafile Daten verschoben werden, muss Seafile gestoppt werden. Dies kann durch den systemd Dienst geschehen, welcher Seafile automatisch startet bzw. beim Herunterfahren beendet.

sudo systemctl stop seafile.service

Wer den Dienst nicht einsetzt, muss folgende Befehle ausführen. Der Pfad muss ggf. wieder angepasst werden.

sudo /home/seafile/seafile-server-latest/seafile.sh stop
sudo /home/seafile/seafile-server-latest/seahub.sh stop

Als nächstes wird in den Kontext des Seafile Users gewechselt.

sudo -s -u seafile

Die Seafile Daten können jetzt auf das neue Medium verschoben werden.

mv seafile-data/ /mnt/daten/seafile

Um Seafile das neue Verzeichnis mitzuteilen, gibt es zwei Möglichkeiten. Entweder wird der neue Pfad in die Datei „/home/seafile/ccnet/seafile.ini“ eingetragen oder es wird ein symbolischer Link auf das neue Verzeichnis gelegt.

ln -s /mnt/daten/seafile/seafile-data/ /home/seafile/seafile-data

Somit ist der Umzug abgeschlossen und der Seafile Benutzerkontext kann wieder verlassen werden.

exit

Zum Abschluss muss Seafile wieder gestartet werden.

sudo systemctl start seafile.service

Ab jetzt befinden sich die Seafile Daten auf einem anderen Laufwerk bzw. Speicherort.