dropbox and cloud storage

Oggi ho iniziato ad usare dropbox, un sistema di cloud storage con client per varie piattaforme, tra cui quelle che interessano a me :) linux e android..

Il funzionamento è abbastanza semplice, ci si registra sul sito, si scarica e installa un demone che girerà in background e avrà il compito di sincronizzare una determinata directory sul nostro pc con un server presente su internet, il tutto tramite connessione cifrata SSL, da li in poi basterà copiare un file nella directory controllata dal demone per ritrovare quello stesso file nella nuvola :D

Il client linux di dropbox è disponibile pacchettizzato per Ubuntu e fedora sia in versione x86 che x86_64, oppure sono disponibili i sorgenti..

Nel mio caso invece (Debian & LXDE) ho preferito seguire una guida alternativa installando tutto da shell senza passare per i pacchetti (il .deb di Ubuntu richiede mezzo gnome per funzionare).

La guida si trova a questo indirizzo ma la riporto qui per semplicità..

How-to:

Si deve scaricare l’ultima versione in base all’architettura che ci interessa

una volta scompattata nella propria home, verrà creata una directory nascosta chiamata .dropbox-dist, con al suo interno, tra gli altri, il file dropboxd; basterà lanciarlo da una shell e apparirà una finestra che ci chiederà i dati usati al momento dell’iscrizione sul sito, una volta inseriti i dati collegherà il nostro pc all’account online e ci chiederà dove creare la directory condivisa e avremo modo di verificare e personalizzare alcune impostazioni, e alla fine ci presenterà un breve tutorial sul funzionamento di dropbox (lo si può saltare tranquillamente).

A questo punto avremo la shell occupata dal processo dropboxd, quindi sarà bene killarlo (Ctrl+C) oppure usare un’altra shell per il momento e completare l’installazione.. ;)

per rendere dropbox più usabile, è consigliabile utilizzare un qualche script di gestione che ci permetta di avviare, stoppare ecc il demone, e qui abbiamo 2 possibilità, o uno script python da tenere in ~/bin (chi non ha questa directory la può creare e aggiungere al $PATH), oppure uno script bash di sistema da mettere in /etc/init.d per i sistemi basati su Debian, o in /etc/rc.d/ su Slackware ecc..

Lo script che vi consiglio di mettere nel $PATH dell’utente è dropbox.py, basterà lanciarlo senza argomenti per vedere cosa può fare, il suo comportamento è simile a quello degli script di sistema, quindi lanciandolo con argomento start avvierà dropbox, stop per fermare il demone e status per verificare se il demone è in esecuzione..

In maniera simile a dropbox.py possiamo utilizzare lo script seguente, da lanciare al boot del pc come servizio:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          dropbox
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     false
# Short-Description: dropbox service
### END INIT INFO

# dropbox service
DROPBOX_USERS="danix"

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

Basterà cambiare il nome utente contenuto nella variabile DROPBOX_USERS con il nome del proprio utente e si occuperà di tutto lui.

Per far funzionare questo script su Debian è sufficiente salvarlo nella directory /etc/init.d come /etc/init.d/dropbox, dopo averlo modificato con il proprio nome utente basterà da root:

chmod 755 /etc/init.d/dropbox
update-rc.d dropbox defaults
invoke-rc.d dropbox start

Questi comandi, in quest’ordine rendono eseguibile lo script, lo aggiungono ai servizi da avviare al boot nei vari runlevel e infine avviano il demone in background per ogni utente specificato nella variabile che ho descritto poco sopra..

Un’altra aggiunta che vi consiglio di fare per usare in maniera ancora più produttiva Dropbox senza passare per nautilus è quella di aggiungere lo script drop, un semplice script bash che dipende da socat e xclip e vi permette di copiare o spostare dei files nella cartella pubblica di Dropbox e ottenere i link al file direttamente nella shell. Una delle “limitazioni” del client ufficiale per linux infatti consiste nel dover passare per nautilus se si vuole ottenere il link al file pubblico, oppure bisogna aprire un browser, visitare la propria pagina su dropbox.com e copiare il link al file in questione.. che dire, troppo macchinoso :D

per usare drop, scaricatelo dal repository su github e decomprimetelo, poi vi consiglio di procedere così, da root:

mkdir /usr/local/bin/dropscript
cp gist591513-a5926504d87acd91cb6194eece060ca1b1b78888/drop /usr/local/bin/dropscript/
chmod 755 /usr/local/bin/dropscript/drop
ln -s /usr/local/bin/dropscript/drop /usr/local/bin/dropcp
ln -s /usr/local/bin/dropscript/drop /usr/local/bin/dropmv

cambiate il nome della directory in cui avete decompresso il tar.gz di github se non coincide. Con questi comandi avrete creato una directory in /usr/local/bin, copiato lo script drop in quella directory, cambiato i permessi allo script in modo da renderlo eseguibile e infine creato 2 link simbolici in /usr/local/bin, dropcp e dropmv, il primo vi permette di copiare un file nella directory Public di dropbox, il secondo vi permette di spostare un file, entrambi i comandi non fanno altro che richiamare lo stesso script ma in 2 modi diversi facendolo operare in modo differente a seconda di come lo si invoca.

Adesso è davvero tutto pronto per godervi le meraviglie del cloud storage..

Quasi dimenticavo, se invece dei 2GB standard disponibili col piano free volete 250 mega in più, approfittate ora e iscrivetevi cliccando su questo pulsante. :halo: join Dropbox

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>