Matériel: Ordi Version de YunoHost: 11.1.21.2 (stable) J’ai accès à mon serveur : En SSH En direct avec un clavier/écran | … Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non /
Description du problème
Hello a tous!
J’ai une erreur qui arrive de temps en temps mais je ne comprends pas pourquoi.
J’ai un script de sauvegarde qui s’execute seul tout les soirs.
Mais de temps en temps, le montage de mes disque de destination ne dois pas ce faire j’ai l’impression… resultat ils balance tout dans la /
ce qui rempli a 100% le disque.
Avez vous une idée du pourquoi et comment faire poue eviter ce genre de probleme?
En supposant que ton hypothèse soit la bonne, pourquoi ne pas tester si le montage est effectif en début de script et le faire si ce n’est pas le cas avant de lancer la sauvegarde?
Sans voir le script, difficile d’avoir une idée du pourquoi.
sinon, tu peux aussi rendre le point de montage inaccessible en écriture sauf quand il est utilisé pour monter ton disque/ta partition. ça se fait avec la commande chattr
tu peux voir ici pour + d’infos
echo “Montage des disques durs de destination…”
sudo mount /dev/sdf5 /home/lemaitre/HDD_Destinations/1To_Bravo_destination
sudo mount /dev/sda /home/lemaitre/HDD_Destinations/4To_Alpha_destination
echo “Démontage des disques durs de destination…”
sudo umount $DEST_BRAVO
sudo umount $DEST_ALPHA
echo “Sauvegardes terminées.”
J’ai regardé un peu de mon coté et j’ai trouvé une info, qui me dit que je peux mettre a ce script une ligne qui permet de laisser un temps entre le montage des disques et le debut des sauvegardes… la commande s’appelle SLEEP.
Et j’ai trouvé aussi ceci
while ! mountpoint -q /chemin/vers/le/montage; do
sleep 5
done
Si je comprends bien, ton code donne un délai de 30 s. Mais après ce temps passé, si le montage ne s’est pas fait, le script continue, donc le problème persiste ?
Es-tu sûr que les disques sont bien toujours /dev/sdf5 et /dev/sda? J’ai tendance plutôt à utiliser des Label (option -L de mount) pour une question de lisibilité et de fiabilité. A défaut les UUID peuvent aussi être utilisés.
Je trouve bizarre d’utiliser sudo dans un script. Comment automatises-tu le lancement du script? Avec une crontab,
Pour la vérification et le timeout suggéré par @tituspijean , tu pourrais prévoir un mail ou l’enregistrement de l’incident dans un fichier de log si i>6 pour t’avertir que la sauvegarde n’a pas eu lieu.
Non mon code d’origine ne donne pas de timing
Il monte et hop il ecrit.
Le probleme est que a mon avis, il monte et si le montage prends trop de temps, il ecris mais sur la racine…
Je pense qu’en donnant du mou entre le montage et l’ecriture ca devrais eviter ce probleme.
Oui en faite les disques ce monte toujours bien, et je recois un mail chaque soir a 22h00 m’indiquant que la sauvegarde a bien ete faite.
En faite le script est lancé en auto avec crontab et peut importe ou la sauvegarde a ete faite lui, me dit que c’est bon le job est fait. Il a raison sauf que le job a été fait sur / au lieu du chemin indiqué… J’ai check et je te confirme oui sdf5 et sda sont toujours les meme…j’utilise sinon les UUID dans fstab deja.
Tu me suggére que en cas ou les sdX viennent a s’embrouiller d’utiliser les LABEL ou UUID dans mon script de sauvegarde?
C’est une idée qui peut “renforcer” le script je pense
i=0
while [[ ! mountpoint -q /chemin/vers/le/montage && i <= 6 ]]; do
sleep 5
i=i+1
done
if [[ ! mountpoint -q /chemin/vers/le/montage ]]; then
echo "Le montage a échoué"
exit 1
fi
(il y a sûrement une manière plus propre et maline de le faire, mais ça devrait marcher )