Ich nutze seit einiger Zeit für weniger wichtige Dateien den Storage Provider Dropbox. Dieser bringt ein kleines Tool um Dateien mit dem Windows oder Linux PC zu Synchronisieren mit. Auch Smartphone Apps sind verfügbar. Allerdings vermisse ich seit einiger Zeit die Möglichkeit, einen Ordner auf einem Linux-Server automatisch im Hintergrund abzugleichen. Das ist zum Beispiel ganz nützlich um diesen Ordner auch per Samba (CIFS/SMB) oder NFS im lokalen Netz freizugeben.
Nun habe ich nach einiger Recherche im Netz eine Möglichkeit gefunden, Dropbox als Service einzurichten. Das ganze ist im Dropbox-Wiki sehr gut Dokumentiert.
Die dort verwendeten init Script verwenden allerdings Multiuser-Umgebungen. Auf einem Server ist es besser einen getrennten Benutzer anzulegen und Dropbox unter diesem zu starten. Der neue user dropbox mit dem Basedir /data/raid/dropbox soll dazu verwendet werden.Nach dem Anlegen des Benutzers muss der dropboxd einmalig unter diesem Benutzer gestartet und der Account aktiviert werden. Meine Anpassungen am Gentoo Script sehen wie folgt aus:
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/sys-fs/dropbox/files/dropbox.init-1.0,v 1.4 2007/04/04 13:35:25 cardoe Exp $
NICENESS=5
DROPBOX_USER="dropbox"
DROPBOX_HOME="/data/raid/dropbox"
DROPBOX_BINARY="/opt/dropbox/dropboxd"
DROPBOX_LOG="/var/log/dropbox_log"
DROPBOX_ERR="/var/log/dropbox_err"
depend() {
need localmount net
after bootmisc
}
start() {
ebegin "Starting dropbox..."
touch $DROPBOX_LOG
touch $DROPBOX_ERR
chown $DROPBOX_USER $DROPBOX_LOG $DROPBOX_ERR
start-stop-daemon -1 $DROPBOX_LOG -2 $DROPBOX_ERR -b -S -m --pidfile /var/run/dropbox.pid -o -N $NICENESS -u $DROPBOX_USER -v -e HOME=$DROPBOX_HOME -x $DROPBOX_BINARY
eend $?
}
stop() {
ebegin "Stopping dropbox..."
start-stop-daemon --stop --pidfile /var/run/dropbox.pid
eend $?
}
status() {
if [ -e /var/run/dropbox.pid ] ; then
echo "dropboxd running."
else
echo "dropboxd not running."
fi
eend $?
}