Préparation d'une clef USB pour faire des sauvegardes (2/3)
moo à toi,
Contexte
C’est la deuxième partie de ce post.
Je te laisse relire le post précédent si tu veux savoir quels sont les parties des commandes que tu dois modifier et où sont les commentaires.
Présentation
On va voir pour automatiser la sauvegarde du blog via un script bash
et faire les vérifications de la clef USB avec un autre script. La
partie sauvegarde n’est pas forcément à destination de tous·tes vu
qu’elle concerne le générateur de site bssg le script
utilise la commande find qui est toujours utile à
connaitre. On verras aussi rapidement la gestion des scripts et des
crontabs. Je vais aussi améliorer le système de sauvegarde
pour qu’il soit plus performant et plus secure avec un système
low-cost, oui je tease un peu là. Je vous en parlerai en
fin de post.
Cambouis
Script de sauvegarde
On va donc commencer par le script de sauvegarde qui est très simple, il fait le backup et fait le ménage dans les anciennes sauvegardes :
cat /home/<utilisateur·ice>/<chemin>/<de>/<ton>/<script>/backup.sh #cat permets de voir le contenu du fichier
#!/bin/bash
#La ligne ci-dessous, c'est le shebang, c'est ce qui permets au système de savoir que ce fichier est un script et avec quel shell il faut le lancer, en l'occurence ici, c'est bash.
set -e # Cet paramètre permets d'arrêter le script un cas d'erreur sur une commande
bssg backup
# La commande de sauvegarde, elle appel un script que j'ai fait, je reviendrai dessus dans un autre post concernant `bssg`.
find /<repertoire>/<de>/<sauvegarde>/ -ctime +30 -delete
# La commande find suivi du répertoire dans lequel il va travailler permets ici de lister tous les fichiers créé, il y a plus de 30 jours -> `-ctime +30` et de les supprimer `delete`.Pour que ce script soit exécutable, il faut ajouter ce droit au script avec la commande suivante :
chmod +x /home/<utilisateur·ice>/<chemin>/<de>/<ton>/<script>/backups.shSous linux, le x est le drots d’exécution,
il permets d’exécuter des programmes et de traverser les répertoires de
l’arborescence.
Script de vérification et correction
Pour faire la vérification de la clef USB, on va exécuter le script
en tant que root. Parce que les commandes utilisés sont des binaires qui
font partie de l’administration système et donc ne sont pas dans le même
répertoire que les commandes courantes. On peut le vérifier avec la
commande which qui indique l’emplacement des binaires
:
utilisateur·ice@au-hasard:~ $ which fsck
/usr/sbin/fsck #Les binaires dans le répertoire `/usr/sbin/` font partie des commandes d'administration.
utilisateur·ice@au-hasard:~ $ which ls
/usr/bin/ls #Les commandes dans le répertoire `/usr/bin/` font partie des commandes standardOn a une autre possibilité qui serait de mettre plus de droits
sudo à ton compte avec l’argument NOPASSWD
mais on ne verras pas ça maintenant.
Voici donc le script :
cat /home/<utilisateur·ice>/<chemin>/<de>/<ton>/<script>/check-usb-key.sh #cat permets de voir le contenu du fichier
#!/bin/bash
set -e
umount ~/backups #On démonte le répertoire pour pouvoir analyser le contenu du périphérique
fsck UUID="c3cd90u2-433d-4ba6-9X55-85338871903c" #On analyse la partition avec l'UUID et si il y a des erreurs, il les corrige.
mount -a #On remonte tous les répertoires pour que la prochaine sauvegardes puisse se faire correctementPour que ce script soit exécutable, il faut ajouter ce droit au script avec la commande suivante :
chmod +x /home/<utilisateur·ice>/<chemin>/<de>/<ton>/<script>/check-usb-key.shcrontab
Backups
Pour lister les crons de notre utilisateur·ice, on peut lancer la commande suivante qui va afficher le fichier de crontab :
crontab -lPour éditer ce fichier on va lancer la commande suivante :
crontab -eDans ce fichier crontab on va ajouter ces deux lignes :
## Backup bssg
20 4 * * * /home/<utilisateur·ice>/<chemin>/<de>/<ton>/<script>/backups.sh
Les premiers arguments servent à indiquer quand lancer les scripts. Pour l’explication : - le script de sauvegarde est lancé à 4H20 tous les jours de l’année.
Check usb
On ce connecte maintenant en root, tu peux utiliser la
commande su - où sudo -i si ton compte est
sudoers.
Pour éditer le fichier crontab on va lancer la commande suivante :
crontab -eDans ce fichier crontab on va ajouter ces deux lignes :
## Check USB
20 6 * * * /home/<utilisateur·ice>/<chemin>/<de>/<ton>/<script>/check-usb-key.sh
Les premiers arguments servent à indiquer quand lancer les scripts. Pour l’explication : - le script de check usb est lancé à 6h20 tous les jours de l’année.
Je reviendrai sur les crontabs dans un autre post, c’est un sujet qu’il faut s’avoir maitriser.
Et voila avec ces deux scripts, on a une sauvegarde du blog et une vérification de la partition tout les jours.
La vérification de la partition tous les jours est clairement excessif mais bon, ceinture, bretelle concernant les données.
Post bonus
Je vais donc faire un troisième post sur la gestion des clefs USB. Sur ces deux derniers posts, on est sur une gestion classique de périphérique qui corresponds à une utilisation classique. Pour le prochain post, on va s’amuser à faire du raid sur plusieurs clef USB. Le raid va nous permetre d’écrire sur plusieurs clefs à la fois et ainsi préserver les données si une de nos clefs tombe en rade. Ce qui peut être très pratique !