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
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
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..
