Bonjour 'Nal,
Permets-moi de te raconter une histoire d'horreur. Il était une fois, moi, hier soir, qui voulais mettre à jour mon serveur Mastodon personnel (avec un unique compte, le mien), pour bénéficier enfin d'une certaine fonctionnalité.
Avant toute chose, je fais une sauvegarde de la base de données au cas où il y ait un pépin pendant la migration. Comme je ne compte pas la sauvegarder au-delà, erreur du débutant, je la place dans /tmp
, que j'ai l'habitude d'utiliser pour placer mes fichiers temporaires. Tu vois venir le coup.
Je lis les notes de version. Je constate que la version minimum requise de plusieurs dépendances a augmenté. Je lance un sudo apt upgrade
complet : après tout, le serveur a besoin d'une mise à jour générale. L'opération prend un bon quart d'heure pendant lequel je fais autre chose, et je ne pense plus à la sauvegarde.
L'attente passée, je constate que le noyau Linux est aussi mis à jour. Pour que la machine se mette à utiliser la nouvelle version du noyau, je redémarre.
Une fois la machine de nouveau en route, je vérifie que tous les services sont en état de marche. Je constate que Mastodon affiche une page d'erreur. Allons-bon, me dis-je, j'ai dû casser quelque chose avec cette mise à jour, il y a peut-être un module qui doit être recompilé ou un problème de ce genre. Je lis dans les logs que le serveur n'arrive pas à établir de connexion avec la base de données.
Légèrement inquiet, je fais machinalement ls /tmp/
pour vérifier que ma sauvegarde est bien là. Je commence à frissonner en réalisant que j'ai redémarré entre-temps, donc /tmp/
a été vidé. Soit, il n'y a plus de sauvegarde. Mais qu'est-il arrivé à la base de données elle-même ?
C'est en relisant mon historique de commandes avec Control R et dans ~/.bash_history
que j'ai eu le fin mot de l'histoire. Pour sauvegarder la base de données, j'étais passé à l'utilisateur postgres
afin de pouvoir exécuter pg_dump
. Comme j'étais encore dans /root/
, où postgres
n'avait pas les droits d'accès, j'ai fait pwd
, pensant atterrir dans /home/postgres/
, mais je me suis rendu compte ensuite que j'étais en fait dans /var/lib/postgresql/
. C'est à ce moment que j'ai voulu déplacer la sauvegarde. Le hic : par inadvertance, au lieu de déplacer /var/lib/postgresql/mastodon-backup.sql
dans /tmp/
, j'ai déplacé le dossier /var/lib/postgresql/
entier. La base de données était dedans.
C'est officiel : je suis un boulet.
# Welcome to club !
Posté par Prae . Évalué à 10 (+15/-0).
T'inquiètes, on a tous été, un moment ou un autre dans notre carrière, un boulet :)
Bienvenue au club, buddy !
[^] # Re: Welcome to club !
Posté par saltimbanque (site web personnel) . Évalué à 10 (+10/-0).
Il faut reconnaître que c'est une boulette assez stylée, quand même plus sexy qu'un énième
rm -rf
écrit sur un tshirt sale. Vilaintmp
, vilain![^] # Re: Welcome to club !
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 6 (+4/-0).
Maintenant c’est un expert : il connait douloureusement ce genre d’erreur…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# humain != machine
Posté par Luc-Skywalker . Évalué à 2 (+0/-0).
La preuve en est encore une fois faite
Je vous le dis, … on a encore de l'avenir.
"Si tous les cons volaient, il ferait nuit" F. Dard
# Quel est la différence entre un bon admin et un mauvais admin ?
Posté par _Tof_ . Évalué à 10 (+16/-0).
Le mauvais admin, il va faire une connerie, c'est sur…
Le bon admin, il l'a déjà faite !
# Heureusement que tu as des sauvegardes quotidienne
Posté par jihele . Évalué à 9 (+7/-0).
En mettant celle de la veille, tu auras pas perdu beaucoup de données.
[^] # Re: Heureusement que tu as des sauvegardes quotidienne
Posté par Colin Pitrat (site web personnel) . Évalué à 2 (+0/-0).
Moi direct dans /dev/null, l'écriture y est beaucoup plus rapide.
# murphy
Posté par steph1978 . Évalué à 7 (+5/-0).
Tu as joué de pas mal de malchance.
Heureusement, tu avais la sauvegarde automatique de la veille bien au chaud dans un lieu sûr et tu as pu la restaurer. N'est-ce pas ?
# Et voilà l'erreur
Posté par oau . Évalué à 3 (+2/-1).
les backups c'est à minima chaque jour. Pas quand tu fais une maj :)
# Il y a 2 catégories
Posté par Christophe B. (site web personnel) . Évalué à 5 (+3/-0).
Voici ce que je dis aux petits jeunes :
Il y a 2 catégories d'ingénieur système linux :
vous pouvez méditer …
[^] # Re: Il y a 2 catégories
Posté par Pol' uX (site web personnel) . Évalué à 6 (+4/-0).
On préfère médire !
Adhérer à l'April, ça vous tente ?
# Je fais comme toi mais de façon plus radicale.
Posté par Antoine J. . Évalué à 10 (+10/-0).
Je mets toutes mes données importantes dans /tmp, je trouve que sur le long terme ça prend moins de place.
# 3-2-1
Posté par Olivier4400 . Évalué à 3 (+2/-0).
Merci d’avoir fait part de ta boulette. Ça fait une piqûre de rappel à tout le monde que les erreurs arrivent, et que des stratégies comme la sauvegarde 3-2-1 en protège.
# /var/tmp vs /tmp
Posté par zerodeux (site web personnel) . Évalué à 2 (+1/-0).
Si tu te demandes pourquoi il y a un /var/tmp avec les mêmes attributs que /tmp sur toutes les distros, tu as découvert la réponse de façon douloureuse … :)
/var/tmp ne sera jamais dans un tmpfs (du moins ça ne sera pas la faute de la distro), et si tu montes un /var distinct ça tombera pas plus mal, tes dumps ou manipulation de data resteront dans le même filesystem (donc des "mv" cheaps, ou "cp -a", etc).
# Supériorité de sysv
Posté par benoar . Évalué à 2 (+0/-0).
Je vais parler un peu à l’emporte pièce car j’ai la flemme de vérifier : de mémoire, avec sysvinit sous Debian, le /tmp n’est pas effacé. C’est avec l’arrivée de systemd qu’on a « forcé » ce nettoyage. J’ai même un souvenir encore plus flou que le comportement aurait changé pour sysvinit récemment pour s’aligner sur systemd, mais peut-être que j’invente.
Et pour corriger un commentaire ci-dessus, ça n’est pas parce que /tmp serait en tmpfs : c’est toujours (par défaut) sur la même partition que /.
[^] # Re: Supériorité de sysv
Posté par Jean-Max Reymond (site web personnel) . Évalué à 1 (+1/-1).
System V en 1985 nettoyait déjà le /tmp, cela ne nous rajeunit pas
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.