Tips 3 : un backup de base vers DropBox

Beaucoup de monde connait dorénavant le service de stockage https://www.dropbox.com/.
Il permet d’obtenir un espace de stockage en ligne pour vos fichiers qui seront accessibles partout dans le monde et à tout moment (dès qu’il fonctionne évidement). Je l’utilise afin de réaliser la sauvegarde des fichiers importants de mon serveur web et donc de ce petit carnet.

Alors, pour utiliser ce service, il faut s’y inscrire, télécharger son application sur son propre PC, lancer putty et se connecter à son serveur. Une fois ces conditions réunies, passons aux choses sérieuses !

Installation de Dropbox !

L’ensemble des commandes pour son installation sont effectuées depuis votre compte personnel sans besoin du compte root ou de sudo.

plateforme 32-bit:

$ cd ~ && wget -O – « https://www.dropbox.com/download?plat=lnx.x86 » | tar xzf –

plateforme 64-bit:

$ cd ~ && wget -O – « https://www.dropbox.com/download?plat=lnx.x86_64 » | tar xzf –

et lancement du logiciel en tâche de fond :

$ ~/.dropbox-dist/dropboxd

Ceci va donc lancer le logiciel et demander le lien à un compte client :

This client is not linked to any account…
Please visit https://www.dropbox.com/cli_link?host_id=xxxxxxxxxxxxxxxxxxxxxxxx to link this machine.

seulement, il n’est pas encore identifié, il va falloir suivre le lien et finir la procédure. Copier ce lien dans votre fenêtre de navigateur sur votre propre ordinateur et hop !

Vous avez maintenant un dossier Dropbox à la racine de votre dossier /home/, vérifiez :

$ ls

Préparation de Dropbox pour utilisation facile

Voilà, le service est installé, mais son utilisation est très limitée sur notre serveur, un dossier synchronisé et voilà ! Nous allons vouloir avoir plus de contrôle en ligne de commande sur le logiciel en lui même. Dropbox facilite beaucoup nos efforts puisque l’entreprise fournit un script CLI permettant de mieux contrôler tout ça.

création d’un dossier Bin(contenant les fichiers exécutables, scripts bash…):

$ mkdir -p ~/bin 

récupération :

$ wget -O ~/bin/dropbox.py « http://www.dropbox.com/download?dl=packages/dropbox.py » 

on le rend exécutable :

$ chmod +x ~/bin/dropbox.py

Nous allons maintenant vouloir l’utiliser comme un service sous Debian au même titre qu’apache2 ou encore votre serveur ftp… Et donc, nous passons en root ou avec sudo.

créons un fichier ini.d :

$ sudo nano /etc/init.d/dropbox

puis nous allons le remplir avec, vous n’avez qu’à modifier

DROPBOX_USERS= »utilisateur »

par le nom de l’utilisateur utilisé pour l’installation :

### 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
#!/bin/sh
#dropbox service
DROPBOX_USERS= »utilisateur »
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

et pour finir nous mettons à jour update-rc :

$ sudo chmod +x /etc/init.d/dropbox $ update-rc.d dropbox defaults

Sauvegarde de notre base de données et de notre dossier public_html(site web,blog, galeries…)

Le script original vient du blog memo-linux, merci beaucoup à eux: http://memo-linux.com/utiliser-dropbox-comme-destination-de-sauvegarde/
Je ne voulais pas réinventer la poudre du coup j’ai grattouillé un peu la toile pour trouver une réponse à mes besoins et hop miracle. Vous verrez que je l’ai modifié pour coller à mes besoins, ce que, je pense vous ferez également.

$ nano bin/backup-serv.sh
#
## on se place dans le repertoire ou l’on veut sauvegarder les bases
cd /home/manu/backup/
#
#on initialise la variable de temps
timestamp=$(date +%d-%m-%Y)
#
# dump de la base du blog
mysqldump –host=localhost –user=utilisateur –password=passe manu > $timestamp.manu.sql
tar -zcf $timestamp.manu.sql.gz $timestamp.manu.sql
#
#ajout du log de la sauvegarde + les erreurs
echo « Sauvegarde de la base blog: $timestamp.manu.sql.gz » > /home/manu/backup/logs/mysql/sauv_sql.log
cat /home/manu/backup/logs/mysql/dump-errors.log >> /home/manu/backup/logs/mysql/sauv_sql.log
#
#on copy la base sur Dropbox
scp $timestamp.manu.sql.gz /home/manu/Dropbox/backup_serveur/bdd
#
#on synchronise la partie web du blog
rsync -avz –delete –stats /home/manu/public_html/blog/ /home/manu/Dropbox/backup_serveur/blog/ >> /home/manu/backup/logs/sauv_blog.log
#
#on nettoie les vielles sauvegardes de plus de 5 jours en local
find /home/manu/backup/ -name « *.sql* » -mtime +5 -exec rm -vf {} ;
#
#et sur Dropbox
find /home/manu/Dropbox/backup_serveur/bdd/ -name « *.sql* » -mtime +5 -exec rm -vf {} ;

Il ne reste plus qu’à le rendre exécutable :

$ chmod +x bin/backup_blog.sh

Et on automatise la chose par un cron qui va bien :]

$ sudo crontab -e
##sauvegarde journalière
00 04 * * * /home/manu/bin/backup_blog.sh > /dev/null
$ sudo service cron restart

Et voilà vous avez une solution de sauvegarde de votre serveur.
Remerciements à http://memo-linux.com, https://www.dropboxwiki.com/, https://www.dropbox.com/.


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

trois × quatre =