Documentos de Académico
Documentos de Profesional
Documentos de Cultura
otros)
Por Pepe Huerta, jahuerta@neutralidadsi.org
(el documento está abierto para colaboraciones!, editen con libertad pero responsablemente!.)
● Cuenta en Dropbox.com.
● Linux, cualquier distribución, en este caso, usamos Debian (servidor que mantiene las
bases de datos).
● Dropbox para linux.
● Optativo: Un segundo equipo (puede ser nuestro computador en casa).
1. Setup
La propia Wiki de Dropbox tiene un tutorial sobre COMO instalar Dropbox en un ambiente de
consola de texto:
http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall
Setup process
1. Log in to your Linux server so you obtain a shell prompt, and change to your home directory.
$ cd
2. Use wget to download the Dropbox Linux client, using either the link to the latest stable version (32-bit
or 64-bit), or go to the forums and find a link to the latest forums version.
# this example is the 32-bit build of the client
$ wget -O dropbox.tar.gz
http://www.dropbox.com/download/?plat=lnx.x86_64
http://www.dropbox.com/download?plat=lnx.x86_64
3a. Use tar to extract the client. It will be placed in a folder .dropbox-dist/ which may be in the folder ~/ or
may be in the folder / (or possibly elsewhere).
$ tar -zxof dropbox.tar.gz
3b. Move the folder and all its contents to .dropbox-dist to ~/.dropbox-dist if neccessary.
$ mv .dropbox-dist ~
4. Run dropboxd as a background process, using the following command:
$ ~/.dropbox-dist/dropboxd &
5. dropboxd should be running for a few seconds - long enough to contact the Dropbox servers and
construct the initial pieces of data required for the client to run. The most important of these for
identification of the client is the host id, a 128-bit number uniquely assigned to every instance of the client.
~# cd /root/
~# wget http://dl-web.dropbox.com/u/17/dropbox-lnx.x86-0.7.110.tar.gz
[...]
13,121,925 2.75M/s in 4.6s
2010-08-09 22:41:34 (2.75 MB/s) - `dropbox-lnx.x86-0.7.110.tar.gz' saved [13121925/13121925]
~# gzip -d dropbox-lnx.x86-0.7.110.tar.gz
~# tar -xf dropbox-lnx.x86-0.7.110.tar
~# cd .dropbox-dist/ [el PUNTO inicial se debe a que es un directorio oculto]
~# chmod +x dropboxd
~# ./dropboxd
(ejecutar el instalador... con eso queda todo instalado imprimiendo el HOST ID)
Una vez instalado, debemos linkear este servidor con nuestra cuenta de Dropbox, para esto - y
una vez finalizada la instalación del binario - se empieza a imprimir en la consola un Host ID de
128 Bits (un hash, un identificador del server o una clave.. tomelo como quiera). [... alguien que
agregue una foto!! ..]
Dicha clave (que es una URL) deberás copiarla y pegarla en tu computador estando logueado
a la cuenta Dropbox que usaremos para los backups. Al ingresar el Host ID en nuestra
cuenta, el servidor quedará linkeado a dicha cuenta de Dropbox para sincronizar los contenidos
entre cualquier computador que la utilice.
La página de “My Computers” en el panel de Dropbox, debe reportar cuales son los
computadores linkeados a la cuenta, incluído nuestro server que acabamos de agregar a la
cuenta.
Una vez instalado y linkeado, Dropbox comenzará a descargar los contenidos del directorio
Dropbox/ en nuestro server, si estás ejecutando DB como root, será en la ruta /root/Dropbox/
2. Realizando Backups
Hay distintas formas para realizar backups de bases de datos, nosotros utilizaremos un script
simple para obtener un dump, comprimir y mover a nuestro dropbox. (usaremos bzip2 como
compresor, pero puede ser gzip o tar perfectamente)
El contenido:
#!/bin/bash
dt=`date +%d-%B-%Y__%H_%M_%S`
mysqldump --user=USUARIO --password=CLAVE --opt BASE DE DATOS > /root/backup-db-dropbox.sql
bzip2 -9 /root/bkps/backup-db-dropbox.sql
cp /root/backup-db-dropbox.sql.bz2 /root/Dropbox/Backups -f
rm /root/backup-db-dropbox.sql*
Podemos probar nuestro script ejecutandolo una vez (./db-backup.sh) y revisar si el archivo se
crea, comprime y se mueve exitosamente al directorio de destino.
Una vez que el archivo es movido sobre la ubicación de nuestro dropbox, el server lo subirá y
sincronizará en “la nube”.
3. Automatizando
Lo más simple para automatizar este proceso es crear un cron job para el usuario:
http://kevin.vanzonneveld.net/techblog/article/schedule_tasks_on_linux_using_crontab/
Agregar:
# m h dom mon dow command
30 05 * * * /root/db-backup.sh >/dev/null 2>&1
Con esto, nuestro script de backups podrá correr todos los días a las 5:30 AM, y dado que en el
script forzamos a sobreescribir el archivo antiguo con la nueva copia de nuestro backup (cp
/root/backup-db-dropbox.sql.bz2 /root/Dropbox/Backups -f), tendremos solo un archivo en nuestro dropbox,
ahorrando espacio y utilizando el control de versiones de Dropbox.com para poder restaurar
versiones más antiguas del respaldo.
En las fotos, estamos restaurando una versión del backup con tres días de antiguedad.
El resto, es solo aprovechar las funciones normales del dropbox y usar la imaginación para
respaldar nuestros datos.
Saludos a Todos.
Pepe Huerta
jahuerta@neutralidadsi.org
9/Agosto/2010
-------------------------------------------
El script te permitirá iniciar, detener y, además, revisar el estado de dropbox a través de init.d.
También se adjuntan instrucciones para iniciar dropbox en la secuencia de booteo. Antes de
crear este script, recomendamos detener dropbox (killall dropbox o killall dropboxd)
$ cd /etc/init.d
$ vim dropbox
NOTA: en la linea DROPBOX_USERS, reemplazar “user1 user2” por los usuarios que
utilizarán dropbox en el servidor. Siguiendo con la linea de nuestros ejemplos con el
usuario root, debería quedar así: DROPBOX_USERS=”root”
# dropbox service
DROPBOX_USERS="root"
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:
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
$ chmod +x /etc/init.d/dropbox
$ /etc/init.d/dropbox status
$ /etc/init.d/dropbox start
Eso es todo!