Synchronizacja plików z Dropbox-em w trybie tekstowym

Muzyka, filmy, dokumenty, zdjęcia – to wszystko z czasem zaczyna zajmować dużo miejsca na dysku. Jeżeli mamy dysk o pojemności np. 120 GB, to problem malejącej wolnej przestrzeni dotknie nas szybko. Gdy w granicach 500 GB – trochę później. Jednak każdy wie, że dyski były, są i będą awaryjne. Jeżeli chcemy „bezpiecznie” przechowywać dane, nie narażając je na utratę, to możemy zainwestować dysk w chmurze.

W tym artykule pokaże jak zainstalować program Dropbox, zmienić katalog synchronizowany oraz aby było ciekawiej – wykonamy to na serwerze, który pracuje pod kontrolą systemu Debian 6.0 z… linii poleceń.

Dropbox posiada klienta, który nie potrzebuje serwera graficznego. Działa normalnie z konsoli. Oczywiście zarządzanie nim jest z lekka trudniejsze niż jego graficznymm odpowiednikiem, ale nie jest najgorzej. Na początku zajmiemy się jego instalacją.

Poniższe wskazówki wykonujemy z konta użytkownika, nie root’a.

Na początku musimy przejść do swojego katalogu domowego. Gdy się w nim znajdziemy, wpisujemy polecenie:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"

Jeżeli mamy 64-bitową wersję systemu:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"

Teraz ów katalog musimy rozpakować:

tar -xvzf dropbox.tar.gz

Po rozpakowaniu uruchamiamy go:

~/.dropbox-dist/dropboxd

W konsoli ukaże się nam dziwny komunikat:

I co najgorsze, nie będzie chciał zniknąć. Oznacza to, że nasz serwer nie jest powiązany z naszym kontem. Musimy przepisać link, który jest podany w tym komunikacie do przeglądarki.

Po wpisaniu linku i po zalogowaniu na konto będziemy musieli jeszcze raz podać hasło do swojego konta, aby maszyna mogła zostać uwierzytelniona.

Po poprawnie wykonanej operacji w konsoli powinniśmy ujrzeć taki widok

Naciskamy kombinację Ctrl+C.

Teraz musimy utworzyć skrypt, dzięki któremu będzie mogli restartować, zatrzymywać, uruchamiać usługę synchronizacji.

Logujemy się jak root i przechodzimy do katalogu /etc/init.d

Tworzymy nowy plik o nazwie dropbox poleceniem:

touch dropbox

nadajemy mu uprawnienia do uruchamiania:

chmod +x dropbox

Po tych zabiegach klepiemy:

nano dropbox

i wklejamy następujący kod:

#!/bin/sh
# dropbox service
DROPBOX_USERS="user1 user2"

DAEMON=.dropbox-dist/dropbox

start() {
    echo "Starting dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}

stop() {
    echo "Stopping dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}

status() {
    for dbuser in $DROPBOX_USERS; do
        dbpid=`pgrep -u $dbuser dropbox`
        if [ -z $dbpid ] ; then
            echo "dropboxd for USER $dbuser: not running."
        else
            echo "dropboxd for USER $dbuser: running (pid $dbpid)"
        fi
    done
}

case "$1" in

    start)
        start
        ;;

    stop)
        stop
        ;;

    restart|reload|force-reload)
        stop
        start
        ;;

    status)
        status
        ;;

    *)
        echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
        exit 1

esac

exit 0

Odszukujemy linię, w której znajduje się:

DROPBOX_USERS="user1 user2"

Tutaj podajemy nazwy userów, którzy będą mogli korzystać z synchronizacji. Nie polecam podawać tu konta roota.

Plik zapisujemy i uruchamiamy usługę:

/etc/init.d/dropbox start

Teraz wypadałoby sprawdzić, czy wszystko działa. Tak więc przechodzimy do folderu Dropbox. Znajduje się on w naszym katalogu domowym:

cd ~/Dropbox

i tworzymy tam np. katalog lub plik. Jeżeli wszystko wykonaliśmy do tej pory dobrze, to utworzony katalog na serwerze powinien zostać wysłany automatycznie do chmury. Jeżeli tak się dzieje, to wszystko gra.

Zmiana domyślnego katalogu

Po instalacji folder Dropbox domyślnie znajduje się w katalogu domowym. A co, jak będziemy chcieli zmienić jego lokalizację ? Kopiuj-wklej w tym przypadku nie zadziała, gdyż klient ma już zapisanie w swojej bazie danych gdzie ów folder się znajduje. Będziemy musieli zatem grzebać w bazie danych. Z pomocą przychodzi nam skrypt napisany w pythonie, który umożliwi nam zmianę lokalizacji.

UWAGA !!! PRZED WYKONANIEM TEJ WSKAZÓWKI ZRÓB KOPIĘ ZAPASOWĄ SWOICH PLIKÓW.
Poniższe wskazówki wykonujemy jako użytkownik.

Na początku musimy przenieś nasz dotychczasowy katalog Dropbox. Wykonujemy to za pomocą polecenia cp.

Po skopiowaniu pobieramy skrypt:

wget http://dl.dropbox.com/u/552/pyDropboxPath/1.0.1/pyDropboxPath.py?dl

Teraz zmieniamy jego nazwę:

mv pyDropboxPath.py\?dl pyDropboxPath.py

Musimy mu jeszcze dodać uprawnienia do uruchamiania:

chmod +x pyDropboxPath.py

Zanim wykonamy nasz skrypt, należy jeszcze zatrzymać usługę dropbox’a. Logujemy się na konto root i wpisujemy polecenie:

/etc/init.d/dropbox stop

Usługa zostanie zatrzymana. Wylogowujemy się z konta poleceniem:

exit

OK. Jesteśmy gotowi do użycia skryptu. No, ale jakieś polecenie czy cuś ? Składnia wygląda tak:

./pyDropboxPath.py --newlocation /nowa/lokalizacja/folderu/Dropbox

czyli np.

./pyDropboxPath.py --newlocation /home/debian/folderek/Dropbox

Jeżeli wszystko przebiegnie zgodnie z planem, to ukaże się nam taki komunikat:

Teraz musimy uruchomić usługę. Logujemy się na root’a i wpisujemy:

/etc/init.d/dropbox start

Po uruchomieniu klient automatycznie rozpocznie pobieranie plików z dysku w chmurze na lokalny HDD.