Outils pour utilisateurs

Outils du site


docs:sauvegarde_debian_avec_dropbox

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
docs:sauvegarde_debian_avec_dropbox [2018/11/05 09:58]
ssa
docs:sauvegarde_debian_avec_dropbox [2018/11/05 10:29] (Version actuelle)
ssa Mise en place sauvegarde Debian -> Dropbox
Ligne 5: Ligne 5:
 Dans le scénario décrit ici (testé sous Debian 9) : Dans le scénario décrit ici (testé sous Debian 9) :
  
-  * sauvegarde d'un répertoire ​de fichiers et les bases de données auxquelles un user Mysql a accès : tout ceci est compressé avec la commande ''​tar''​ +  * sauvegarde d'une arborescence ​de fichiers et des dumps des bases de données auxquelles un user Mysql a accès : tout ceci est compressé avec la commande ''​tar''​ 
-  * ces données sont placées ​dans un répertoire dédié sur la partition la plus large du serveur (ici ''/​home''​) +  * ces données sont créées ​dans un répertoire dédié sur la partition la plus large du serveur (elle est ici montée en ''/​home''​) 
-  * un lien symbolique permet la synchronisation Dropbox +  * confidentialité : un chiffrement ​est appliqué ​avec ''​gpg'' ​et les fichiers cryptés sont créés dans un second répertoire dans /home 
-  * confidentialité : chiffrement ​préalable avant sauvegarde ​avec ''​gpg''​+  * ce dernier répertoire est synchronisé sur Dropbox via un lien symbolique 
 +  * on ajoute aux noms de fichiers la date et l'​heure,​ et on conserve (en local et donc sur Dropbox) les fichiers à synchroniser pendant 15 jours
  
-===== Installation de Dropbox ​=====+===== Préparation serveur ​=====
  
-//​Procédure effectuée ici avec l'​utilisateur root. //Télécharger et décompresser Dropbox : \\ ''​cd ~ && wget -O - "​https://​www.dropbox.com/​download?​plat=lnx.x86_64"​ | tar xzf -''​ Le lancer pour le configurer : ''​ ~/​.dropbox-dist/​dropboxd''​ \\ note : il faut avoir ouvert une session Dropbox dans un navigateur sur PC car la configuration va se traduire par la génération d'une URL contenant un token, qu'il suffira de copier dans le navigateur pour associer le serveur au compte Dropbox. Vérifier que la synchro Dropbox est OK en déposant un copiant un fichier dans: /​root/​Dropbox //''​+==== Installation de Dropbox ==== 
 +//​Procédure effectuée ici avec l'​utilisateur root. //
  
 +Télécharger et décompresser Dropbox :
 +''​cd ~ && wget -O - "​https://​www.dropbox.com/​download?​plat=lnx.x86_64"​ | tar xzf -''​
  
 +Le lancer pour le configurer : ''​ ~/​.dropbox-dist/​dropboxd''​
 +
 +//note : il faut avoir ouvert une session Dropbox dans un navigateur sur PC car la configuration va se traduire par la génération d'une URL contenant un token, qu'il suffira de copier dans le navigateur pour associer le serveur au compte Dropbox.//
 +
 +Vérifier que la synchro Dropbox est OK en déposant un copiant un fichier dans: **/​root/​Dropbox** ​
 +
 +==== Configuration Dropbox comme service lancé au démarrage ====
 +
 +Créer le script de démarrage : **/​etc/​init.d/​dropbox**
 +<​code>​
 +#!/bin/sh
 +#dropbox service
 +DROPBOX_USERS="​root"​
 + 
 +DAEMON=.dropbox-dist/​dropboxd
 + 
 +start() {
 +   echo "​Starting dropbox..."​
 +   for dbuser in $DROPBOX_USERS;​ do
 +       ​HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
 +       if [ -x $HOMEDIR/​$DAEMON ]; then
 +    echo $dbuser
 +           ​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
 +</​code>​
 +
 +Le rendre exécutable :
 +''​sudo chmod +x /​etc/​init.d/​dropbox''​
 +
 +L’inscrire au démarrage du serveur : 
 +''​sudo update-rc.d dropbox defaults''​
 +
 +==== Création lien symbolique ====
 +On va déposer en local nos archives cryptées à synchroniser dans **/​home/​backups/​Dropbox** et on souhaite que la synchronisation s'​effectue dans un sous-répertoire **backups** du Dropbox :
 +
 +''​ln -s /​home/​backups/​Dropbox /​root/​Dropbox/​backups''​
 +
 +==== Installation gnupg ====
 +Pour le cryptage on utilisera GnuPG :
 +''​apt-get install gnupg''​
 +
 +===== Exemple script sauvegarde =====
 +
 +<​code>​
 +#!/bin/sh
 +
 +# configuration de l'​utilisateur MySQL et de son mot de passe
 +DB_USER="​NOM_USER_BDD"​
 +DB_PASS="​MDP_BDD"​
 +# configuration de la machine hébergeant le serveur MySQL
 +DB_HOST="​localhost"​
 +
 +# Prefix de nommage des fichiers (date et heure)
 +PREFIX=`date +%Y%m%d-%H%M%S`
 +
 +# Mot de passe GPG
 +PASSPHRASE="​MDP_CRYPTAGE"​
 +
 +# Répertoires sauvegarde : répertoire local (pour les tar) et pôur synchro Dropbox (les créer avant !!)
 +REPBKUP_LOCAL="/​home/​backups/​valeurdusage.net"​
 +REPBKUP_DB="/​home/​backups/​Dropbox/​valeurdusage.net"​
 +
 +# Archivage répertoire
 +cd /​var/​www/​valeurdusage.net
 +tar zcpvf $REPBKUP_LOCAL/​${PREFIX}_backup_fs_wp.gz .
 +
 +# Récupération de la liste des bases
 +DATABASES=`MYSQL_PWD=$DB_PASS mysql -u $DB_USER -e "SHOW DATABASES;"​ | tr -d "| " | grep -v -e Database -e _schema -e mysql`
 +
 +# Boucle sur les bases pour les dumper
 +for DB_NAME in $DATABASES; do
 +    MYSQL_PWD=$DB_PASS mysqldump -u $DB_USER --single-transaction --skip-lock-tables $DB_NAME -h $DB_HOST>​ $REPBKUP_LOCAL/​${PREFIX}_$DB_NAME.sql
 +done
 +
 +# Boucle sur les noms de bases pour compresser les dumps et les crypter
 +for DB_NAME in $DATABASES; do
 +    gzip $REPBKUP_LOCAL/​${PREFIX}_$DB_NAME.sql
 +    gpg --yes --batch --cipher-algo=AES256 --passphrase=$PASSPHRASE -c $REPBKUP_LOCAL/​${PREFIX}_$DB_NAME.sql.gz
 +done
 +
 +# Crypte le backup du filesystem
 +    gpg --yes --batch --cipher-algo=AES256 --passphrase=$PASSPHRASE -c $REPBKUP_LOCAL/​${PREFIX}_backup_fs_wp.gz
 +
 +# Copie les fichiers cryptés vers le répertoire synchronisé sur Dropbox
 +cp $REPBKUP_LOCAL/​*.gpg $REPBKUP_DB/​
 +
 +# Supprime les archives non cryptées
 +rm $REPBKUP_LOCAL/​*.gz
 +
 +# Purge en local (donc y compris synchro Dropbox) les fichiers de plus de 15 jours
 +find $REPBKUP_LOCAL -mtime +15 -exec rm {} \;
 +find $REPBKUP_DB -mtime +15 -exec rm {} \;
 +
 +</​code>​
 +
 +
 +Ne reste plus qu'à créer un cronjob pour lancer le script toutes les nuits.
docs/sauvegarde_debian_avec_dropbox.txt · Dernière modification: 2018/11/05 10:29 par ssa