RASPBERRY 

sauvegardez 

votre installation.

 

 

 

Bonjour à tous, ce troisième article sur le Raspberry va nous permette de fiabiliser notre installation. Comme vous l'avez certainement déjà découvert la carte micro SD a une durée de vie limitée, c'est l'une des raisons pour laquelle nous allons apprendre à sauvegarder et à les automatiser pour préserver notre travail d'un éventuel crash. Pour cela, j'utiliserai un disque dur externe de 2 Téra, compléter par la synchronisation de services cloud tel que Onedrive.

Nous allons tout au long de cet article apprendre à:

-Synchroniser Onedrive et Dropbox sur notre raspberry.

-Créer une image de la carte micro SD du système.

-Sauvegarder une base de données

-Utiliser Cron, il permet d'exécuter des tâches périodiques.

A la fin de ce tuto vous serez capable de protéger votre travail. Cela vous permettra d'utiliser des applications critiques malgré la faiblesse du Rasperry, sa carte Micro SD. Personnellement j'utilise mon Raspberry pour faire ma comptabilité grâce à Dolibarr, je ne l'aurai pas fait sans cette automatisation de sauvegarde. 

 

 

 

Sommaire

 

 

 Les prérequis

 

Dans un premier temps nous allons faire notre première sauvegarde et ainsi nous protéger des erreurs de manipulation. Pour cela Il nous faut installer et monter un disque dur externe qui nous servira de support d'enregistrement. Ensuite nous ferons une sauvegarde de l'image de la carte micro SD afin de permettre une restauration au besoin, puis nous mettrons à jour notre système grâce à une super commande que je détaillerai.

A titre d'exemple, j'ai choisi un disque dur externe de 2T connecté en USB3. Il me permet de stocker mon Onedrive (1T) et mon Dropbox, une image de ma carte SD (128 Go), les backups de mes bases de données et de mon site PHP. Notez que l'alimentation de 3 ampères ne permet pas de faire fonctionner plus d'un disque.

J'ai créé deux partitions physiques, une d'environ 500 Go et une autre de 1,5T. La première me permet, non seulement de faire des sauvegardes, mais aussi de l'utiliser pour des fichiers d'échanges temporaires pour limiter les écritures sur la carte micro SD. 

J'ai monté la première partition vers /media/backup puis la seconde vers /cloud.

En exemple voici ce que donne mon montage dans mon fichier /etc/fstab, contrairement à mon premier article j'ai utilisé le PARTUUID  des partitions pour enregistrer le montage.

PARTUUID=919b143e-01     /media/backup_innogreentech ext4 defautls 0  2
PARTUUID=919b143e-02 /cloud ext4 defautls 0 2

Vous êtes prêt? Votre raspberry a un disque dur externe fonctionnel? Nous allons pouvoir sauvegarder notre carte SD.

Nous allons maintenant créer une Image de la carte micro SD sur le disque dur externe. Pour cela nous utilisons le programme dd. Ce programme est très puissant, une erreur de syntaxe pourrait générer une perte de données irréversible. "if" représente les données entrantes (la partition de la carte micro SD) et "of" le lieu de l'enregistrement, pour nous ce sera notre disque dur externe. Cette sauvegarde prend beaucoup de temps attendez qu'elle soit finit pour aller plus loin dans le tuto.

sudo dd bs=4M if=/dev/mmcblk0 of=/media/backup_innogreentech/backup.img

 Nous pouvons maintenant mettre à jour en toute tranquillité notre Raspberry, pour cela un ami m'a fourni une ligne de commande qui réunit toutes les actions à mener. Vous remarquerez les &&, ils permettent de faire suivre plusieurs commandes.  

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get dist-upgrade

Pas mal non? Garder en mémoire ces commandes vous pourrez les automatiser grâce à  Cron. Si tout c'est bien passé je vous conseille de faire une Image ISO de la carte.

 

 

Utilisation de Cron

 

Cron est un utilitaire qui permet de programmer des tâches de manière périodique. Pour le paramétrer il suffit d'utiliser la commande crontab, 3 paramètres essentiels permettent de prendre en main Cron:

L'option -e permet d'éditer et de modifier la Crontab. C'est la table qui contient vos tâches périodiques, elle sera éditer sur votre éditeur de texte par défaut. Il est à noter que chaque utilisateur a une table, celle-ci est exécutée avec les droits de l'utilisateur.

crontab -e

 Le paramètre -l permet de lire les tâches programmées sans ouvrir l'éditeur.

crontab -l

 Le dernier -r supprime la crontab. Attention la suppression est définitive.

crontab -r

 

Pour créer une tâche il suffit d'éditer la Crontab puis d'ajouter une ligne qui informe la périodicité de la tâche suivit de la commande à accomplir.

minutes heures jour_mois mois jour_semaine commande

En exemple  la commande qui suit,  crée un fichier tous les jours à 17 heures 30, ce fichier sera enregistré sous le dossier de l'utilisateur de la crontab. Il est préférable d'utiliser le lien absolu  (localisation complète du fichier).

30 17 * * * touch happyday.txt

Vous noterez la présence * qui signifie que l'action doit être réalisée à chaque occurrence. Si je veux créer ce fichier seulement le dimanche j'utiliserais la syntaxe (0= dimanche, 1= Lundi,...)

30 17 * * 0 touch happyday.txt

 

Il est possible de sélectionner plusieurs horaires en les listant séparer par une virgule ou en mettant deux bornes séparées par un trait d'union. Il est aussi possible d'utiliser des multiples d'un chiffre grâce à cette syntaxe */ . Concrètement si l'on souhaite créer un fichier toutes les 5 minutes, entre le 10 et le 15 des mois de janvier et de juillet cela donnerai la syntaxe.

 

*/5 * 10-15 1,7 * touch happyday.txt

 

Finalement la syntaxe fait un peu peur, mais elle est très simple, quand vous éditez la crontab il y a une aide pour vous rafraîchir la mémoire ;-). Un autre exemple si vous voulez mettre à jour votre installation après avoir fait une image tous les 15 du mois à 3 heures 30 du matin. 

 

30 3 15 * * sudo dd bs=4M if=/dev/mmcblk0 of=/media/backup_innogreentech/backup.img && apt-get update && sudo apt-get -y upgrade && sudo apt-get dist-upgrade

 

A noter qu'il est possible de créer des scripts shell qui peuvent être lancés par Cron, cela permet d'obtenir des commandes plus complexes. Je vous conseille vivement le cours d'openclassrooms qui vous donnera une bonne maîtrise de Linux.

 

 

Synchroniser Onedrive/Dropbox

 

Souvenez vous nous avons partitionné notre disque pour dédier une partition à la synchronisation des services cloud, c'est certainement la partie la plus complexe de ce tuto, surtout, si comme moi, vous n'avez pas activé l'interface graphique de votre Raspberry.

Dans un premier temps il nous faut installer le logiciel Rclone, c'est grâce à lui que nous allons pouvoir synchroniser notre serveur, puis je vais prendre pour exemple la création d'un accès vers onedrive pour vous présentez la configuration.  Le procédure est la même pour dropbox.

 

sudo apt install rclone

 

Si comme moi vous n'avez pas de bureau pour accéder à un navigateur depuis votre raspberry, vous allez devoir installer Rclone sur votre PC en décompressant le fichier sur un répertoire de votre choix.

Ensuite avec l'aide de la console windows, placez-vous sous le répertoire où est enregistré rclone puis taper la commande:

 

rclone authorize onedrive

 

Une fenêtre s'ouvre dans votre navigateur  pour autoriser la connexion à onedrive, une fois validée un code d'accès est transmis à la console, copiez le code.

 

code rclone 

Maintenant ouvrez une autre console et connectez vous  sur votre raspberry, lancez  l'interface configuration de rclone:

 

rclone config

Créer une nouvelle connexion en suivant les instructions étape par étape:

1- Choisir nouvelle connexion: n

2- Nommez la connexion "onedrive" par exemple

3-Choississez le type de connexion: ici c'est onedrive

4-Laissez vide le client ID

5-Laissez vide le client secret

6-Indiquer que l'on ne veut pas la configuration avancée

7-Si comme moi vous n'avez pas d'interface graphique répondez n sinon oui. 

8-Coller le code de connexion que vous avez copié précédemment.

9- Informez le type de compte utilisé "Onedrive Personal"

10- Validez le choix

11- Validez votre configuration.

Nous allons maintenant tester que l'accès à Onedrive fonctionne grâce à une commande qui permet de lister les répertoires.

rclone lsd remote: onedrive

Ou en listant les fichiers.

rclone ls remote

Tout va bien? Super, nous allons pouvoir synchroniser les fichiers Onedrive sur notre serveur, et inversement.

Dans un premier temps nous allons créer un répertoir onedrive sur la partition cloud de notre disque dur externe.

sudo mkdir /cloud/onedrive

Puis nous allons utiliser la commande copy pour transférer les fichiers héberger dans le cloud vers notre serveur, seul les différences sont changées et seul la destination sera modifiée.

rclone copy onedrive: /cloud/onedrive

 

Maintenant il est possible de synchroniser notre dossier avec le cloud. Cette synchronisation fonctionne dans les deux sens.  Contrairement à la commande copy les fichiers supprimés sur la source le seront aussi sur la destination.

 

rclone sync onedrive: /cloud/onedrive

 

Si vous souhaitez ajouter des fichiers à votre Cloud, il suffit d'inverser la source et la destination.

 

rclone copy /cloud/onedrive onedrive:

 

Avec Cron vous allez pouvoir maintenant synchroniser réguliérement votre cloud avec votre rapberry. Par exemple en ajoutant la ligne suivante qui fera une synchronisation toutes les 30 minutes.

0,30 * * * * rclone sync onedrive: /cloud/onedrive

 

 

 

Commandes de Sauvegarde

 

 

Commande de sauvegarde d'une base de données dans un fichier compressé sur un dossier qui est synchronisé sur mon onedrive grâce à une tâche Cron.

sudo mysqldump --user=utiliateur --password=mot_de_passe base_de_données_à_sauvegarder | gzip > /cloud/onedrive/bases/nom_de_la_base.sql.gz

Pour sauvegarder mes services web j'utilise la commande rsync qui me permet de synchroniser le répertoire www avec un répertoire qui sera ensuite synchronisé avec mon cloud.

sudo rsync -ar /var/www/html  /cloud/onedrive/home_server/site/

 

Rsync permet de multiples options dont celle de conserver les fichiers supprimés dans un dossier de sauvegarde.

sudo rsync -ar --delete --backup --backup-dir=/cloud/onedrive/home_server/old_files /var/www/html  /cloud/onedrive/home_server/site/

 

Voilà cet article est terminé, j'espère qu'il vous permettra de mieux appréhender  la sauvegarde de vos projets. Et surtout que vous le lisiez avant qu'il ne soit trop tard.;-)

  

 

 

 

 

 

 

 

 

 

Veuillez vous connecter ou créer un compte pour pouvoir poster un commentaire.