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
|
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 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.
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.
|
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.
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.
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.
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.
|
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.
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.
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
|
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.;-)
|