====== Backup ====== ===== Prérequis ===== * Une clé **GPG** pour le cryptage des données ; * Un compte **hubiC** pour la sauvegarde à distance ; * La liste des fichiers à sauvegardé. ===== Installation et configuration ===== ==== hubiC ==== La version Linux étant encore en bêta, nous récupérons le package (.deb) de la dernière version en date directement depuis le serveur OVH (([[https://forums.hubic.com/showthread.php?230-hubic-Linux-sortie-de-la-version-bêta|https://forums.hubic.com/showthread.php?230-hubic-Linux-sortie-de-la-version-bêta]])) avec un wget puis on procède à son installation. # wget http://mir7.ovh.net/ovh-applications/hubic/hubiC-Linux/2.1.0/hubiC-Linux-2.1.0.53-linux.deb # dpkg -i hubiC-Linux-2.1.0.53-linux.deb On obtiendra alors des erreurs à propos de dépendances non satisfaites : {{ :hubic_install_error.png |}} On corrigera ces erreurs via la commande suivante qui se chargera d'installer tout le nécessaire. # apt-get install -f A ce stade, si l'on essaye de lancer l'application, nous obtiendrons l'erreur suivante : //Cannot contact daemon, are you sure it is running?// \\ La documentation du service nous indique que ce problème survient sur les serveurs ou lors de l'utilisation d'une connexion SSH. On va donc reconfigurer dbus correctement : # export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --fork --print-address) hubiC est maintenant prêt ! {{ :hubic_ready.png |}} ==== GPG ==== Nous n'avons ici aucun paquet à installé, tout étant déjà présent par défaut au sein de Linux. Nous aurons juste à importer notre clé GPG **publique**. {{ ::gpg_ready.png?550|}} Pour se faire, nous créons un fichier texte, //gpg.txt// par exemple, et y collons notre clé publique. Ne reste qu'à l'importé via # gpg --import gpg.txt ===== Mise en place ===== ==== Principe ==== Nous utiliserons la fonction d'archivage incrémentiel de **tar** pour créer nos sauvegardes. \\ Nous allons donc créer un dossier, nous avons choisi de le mettre à la racine de notre système et le nommé //backups//. Nous y ferrons deux sous-dossiers : le premier, que nous appelons //temp// servira à stocker nos archives en cours de traitement ; le second, //save// sera indiquer à hubiC en mode synchronisation pour l'envoie vers le service. Passons à la création de l'archive : tar -czf /backups/temp/nomArchive_`date --rfc-3339=date`.tar.gz --listed-incremental=/backups/nomArchive.list /unChemin/* //nomArchive// correspond au nom de l'archive souhaiter auquel nous ajoutons la date au format AAAA-MM-JJ. //nomArchive.list// contient la liste des fichiers et de leur état depuis la dernière fois que nous avons exécuter l'opération. Une fois l'archive créée, on la crypte pour assurer la confidentialité de nos données. gpg --encrypt --recipient idKeyPgp nomArchive.tar.gz //idKeyPgp// étant l'id de votre clé publique précédement importer et //nomArchive//, l'archive créer précédemment. Enfin, on déplace notre archive gpg (//nomArchive.tar.gz.gpg//) vers le dossier //save// en vue de sa synchronisation sur **hubiC**, sans oublier de supprimer l'archive restante devenue inutile (//nomArchive.tar.gz//). mv /backups/temp/nomArchive.tar.gz.gpg /backups/save/ rm /backups/temp/nomArchive.tar.gz ==== Script ==== On reproduit le principe sous forme de script dans lequel on précise les dossiers que l'on veut sauvegarder dans le tableau //bk_data//. #!/bin/bash # # Création de sauvegarde # # Variables bk_home="/backups" bk_temp="/backups/temp" bk_save="/backups/save" declare -a bk_data=("/premier/dossier" "/deuxieme/dossier") # Parcourir la liste for folder in "${bk_data[@]}" do echo "$folder - Debut de sauvegarde" # On se déplace dans le dossier cd $folder # Nom du répertoire à sauvegarder bk_name=`pwd | sed 's#.*/##'` # Creation de l'archive tar -czf $bk_temp/$bk_name"_"`date --rfc-3339=date`.tar.gz --listed-incremental=$bk_home/$bk_name.list $folder # Cryptage de l'archive gpg --encrypt --recipient 2AC34D90 $bk_temp/$bk_name"_"`date --rfc-3339=date`.tar.gz # Creation d'un sous-dossier si necessaire if [ ! -d "$DIRECTORY" ]; then mkdir $bk_save/$bk_name fi # Deplacer les fichiers vers le dossier de synchronisation hubiC mv $bk_temp/$bk_name"_"`date --rfc-3339=date`.tar.gz.gpg $bk_save/$bk_name rm $bk_temp/$bk_name"_"`date --rfc-3339=date`.tar.gz cp $bk_home/$bk_name.list $bk_save/$bk_name # Sortir du dossier à sauvegarder cd $bk_home echo "$folder - Fin de sauvegarde" done Il ne faudra pas oublier de lancer la synchronisation avec la commande hubic login mailHubic dossierASynchro On pourra également exécuter le script via une tache planifiée pour automatiser la tâche.