Sauvegarder son serveur automatiquement vers HubiC
J'ai un serveur dédié de développement, et pour éviter de paumer quoi que ce soit, j'ai mis en place une sauvegarde automatique vers HubiC avec Backup-Manager, c'est très simple et gratuit alors pourquoi s'en priver ?
Création du compte
Tout d'abord, allez sur le site HubiC et créez un compte, vous avez droit à 25Go gratuits (ça suffit pour mon usage personnellement, je ne stocke rien d'autre dessus)
Ensuite, rendez-vous dans votre compte, rubrique développeurs et cliquez sur "Ajouter une application" :
Rentrez les informations (le nom n'a pas d'importance, mais n'oubliez pas http://localhost en URL de redirection)
Installation de HubiCFuse
Cette application nous permet de monter notre stockage HubiC sur notre serveur, comme un dossier
Quelques dépendances :
apt-get install gcc make curl libfuse-dev pkg-config libcurl4-openssl-dev libxml2-dev libssl-dev libjson-c-dev libmagic-dev
On télécharge et on compile tout ça :
git clone https://github.com/TurboGit/hubicfuse.git
cd hubicfuse
./configure
make
make install
Montage du système de fichier
On lance cette commande :
./hubic_token
Il va nous poser un certain nombre de questions, répondez à chaque fois :
client_id (the app's id): votreClientID
client_secret (the app's secret): votreClientSecret
redirect_uri (declared at app's creation): http://localhost/
For the scope -what you authorize your app to do-, enter characters as suggested
in parenthesis, or just hit return if you don't need the item authorized.
Get account usage (r): r
Get all published links in one call (r): r
Get OpenStack credentials, eg. access to your files (r): r
Send activation email (w): w
Add new/Get/Delete published link (wrd): wrd
user_login (the e-mail you used to subscribe): [b]mailhubic@domaine.tld[/b]
user_pwd (your hubiC's main password): votrepassHubiC
Le script devrait vous retourner ceci :
Success!
# Here is what your app needs to connect to hubiC:
client_id=clientID
client_secret=clientSecret
refresh_token=refreshToken
On copie ensuite ces trois dernières informations dans un fichier .hubicfuse
nano /root/.hubicfuse # On copie les 3 variables dans ce fichier
mkdir /mnt/hubic
hubicfuse /mnt/hubic -o noauto_cache,sync_read,allow_other
Installation de Backup-manager
Si ce n'est pas déjà fait
apt-get install backup-manager
Vous aurez alors deux questions
Archives location : /mnt/hubic/default/Backup (si vous avez un dossier Backup à la racine de votre stockage HubiC
Directories to backup : /var/www /etc (par exemple)
Configuration de Backup-Manager :
On va configurer la bestiole maintenant, je vais aller au plus simple :
On modifie la configuration :
nano /etc/backup-manager.conf
Je vous donne quelques paramètres à modifier, mais la configuration est très complète, n'hésitez pas à consultez le Tuto de Jedediah pour de plus amples informations:
# Dossier pour les sauvegardes rentrées à l'installation
export BM_REPOSITORY_ROOT="/mnt/hubic/default/Backup"
# Nombre de jours où les archives seront conservées sur le serveur
export BM_ARCHIVE_TTL="5"
# Je veux sauvegarder des fichiers plus des BDD je mets donc les 2 paramètres
export BM_ARCHIVE_METHOD="tarball mysql"
# Les fichiers sauvegardés seront transférés en tar.gz sur le serveur de backup
export BM_TARBALL_FILETYPE="tar.gz"
# Dossier à sauvegarder sur le serveur
export BM_TARBALL_DIRECTORIES="/var/www /etc"
# Une option qui peut être utile si vous ne souhaitez pas sauvegarder certains
# dossier ou types de fichier (ici un dossier cache)
export BM_TARBALL_BLACKLIST="/var/www/cache/"
# Bases de données à sauvegarder
# __ALL__ permet de tout sauvegarder
export BM_MYSQL_DATABASES="__ALL__"
# Utilisateur Mysql ayant accès à toutes les bases
export BM_MYSQL_ADMINLOGIN="root"
# Mot de passe
export BM_MYSQL_ADMINPASS="passwordRootBDD"
# On désactive les autres méthodes de sauvegarde
export BM_UPLOAD_METHOD="none"
# On désactive la gravure
export BM_BURNING_METHOD="none"
# Script qui sera lancé après le backup
export BM_POST_BACKUP_COMMAND="/usr/share/scripts-perso/backup-manager-post.php"
Ajout d'une tâche Cron :
On va créer un petit script pour lancer backup-manager automatiquement à heure précise
mkdir /usr/share/scripts-perso
nano /usr/share/scripts-perso/backup-manager.sh
On colle ceci :
#!/bin/sh
test -x /usr/sbin/backup-manager || exit 0
/usr/sbin/backup-manager
On le rend exécutable :
chmod +x /usr/share/scripts-perso/backup-manager.sh
On ajoute une tâche Cron :
crontab -e
Et on y colle :
0 5 * * * sh /usr/share/scripts-perso/backup-manager.sh > /dev/null 2>&1
Le script se lancera à 5h00
Envoi d'un mail :
On édite la configuration de PHP pour mettre le bon fuseau horaire :
nano /etc/php5/cli/php.ini
On cherche la ligne date.timezone, on remplace par ça sans oublier de décommenter :
date.timezone = Europe/Paris
Création du script :
nano /usr/share/scripts-perso/backup-manager-post.php
On y insère ce contenu :
#!/usr/bin/php
<?php
mail ('votremail@domain.tld','Sauvegarde du serveur terminée', 'Le serveur a fini sa sauvegarde à '.date("H:i:s"));
?>
On le rend exécutable :
chmod +x /usr/share/scripts-perso/backup-manager-post.php
Plus qu'à tester !
backup-manager
Et voilà vos backups sont dans le nuage !
Très satisfait de cette solution (évite de débourser le moindre centime, et je fais confiance à OVH pour mon serveur, alors pourquoi pas HubiC en backup ?)
Adapté de :
Sauvegarde automatique Hubic Idneo + Tuto Backup-Manager de Jedediah