C'est avec douleur que je dois donner raison à celui ou celle qui a dit qu'il faut faire des backups réguliers et des dumps de ses bases de données. J'ajouterai simplement une petite chose apprise à mes dépens : Si on parle de faire des sauvegarde des données d'un serveur, ne pas oublier de rapatrier tout ça chez soi ou en tous cas loin de la source (d'un point de vue de proximité réseau).
Plantons le décor. La fin de contrat dans un data center approche. Il faut déménager les services ailleurs. On prend les devants et on cherche un autre, pas trop cher pour y mettre notre machine. C'est pas gagné :-/ Finalement on va squatter chez une bonne âme pour tout ce qui est dev et asso. Pour le pro (rien pour le moment) on y mettra les frais et on se payera un truc en temps voulu.
On prend tout notre temps. On devrait être prévenus quand ce sera le moment de faire le ménage et de rendre les clefs. On migre les sites, les services et tout et tout. Un simple
Driiiiiing ! Coup de téléphone doublé d'un mail : c'est demain que ça coupe. On n'a plus trop le temps de faire le rsync, d'autant qu'on n'a plus des masses d'espace sur la nouvelle machine. Faut trancher dans le vif ! Tiens les bases de données mysql de type InnoDB ne peuvent que grossir. On essaye de suivre la procédure pour limiter la casse décrite sur le blog de crazytoon [1]. Tout roule... sauf que mysql veut plus se lancer. Bon, pas trop grave pour le moment, vu que les données sont bien sagement rapatriées dans le /tmp de la nouvelle machine. Attention, vous venez de lire un élément important.
On galère, on cherche et au final on trouve. Peut-être un problème de quotas sur la nouvelle machine, peut-être aussi un problème d'options de mysql lors du mysql_install_db. Bref on peut maintenant importer les données. Sauf que les données, elles sont plus là :(( Un reboot intermédiaire a fait le ménage dans /tmp. Pas grave, on refait une copie du fichier depuis l'ancienne machine et ça devrait marcher. Sauf que ça marche pas : la machine est down. Murphy's law diront certains. Qu'on y croit ou pas, en tous cas, ça fait bien suer (je pensais à un autre mot, je l'avoue) !
Acte trois, téléphone de droite et de gauche pour accéder à la machine. "Pas moyen", elle est prise en otage car la société qui payait l'espace dans la baie ne payait plus, et ce depuis quelques mois ! Douche froide... et on est réduit à se demander : on paye et on récupère nos données, ou on cherche un backup en attendant que la situation se règle toute seule. Faute de moyen, ce sera la solution 2. Mais pour le coup, le backup le plus récent (en fait le seul que j'ai pu retrouver) datait de fin 2006.
Mine de rien, en subissant une migration foirée, on a inventé la machine à remonter le temps !
[1]http://crazytoon.com/2007/04/03/mysql-ibdata-files-do-not-sh(...)
Plantons le décor. La fin de contrat dans un data center approche. Il faut déménager les services ailleurs. On prend les devants et on cherche un autre, pas trop cher pour y mettre notre machine. C'est pas gagné :-/ Finalement on va squatter chez une bonne âme pour tout ce qui est dev et asso. Pour le pro (rien pour le moment) on y mettra les frais et on se payera un truc en temps voulu.
On prend tout notre temps. On devrait être prévenus quand ce sera le moment de faire le ménage et de rendre les clefs. On migre les sites, les services et tout et tout. Un simple
rsyncà la fin devrait suffire pour la synchro finale des machines.
Driiiiiing ! Coup de téléphone doublé d'un mail : c'est demain que ça coupe. On n'a plus trop le temps de faire le rsync, d'autant qu'on n'a plus des masses d'espace sur la nouvelle machine. Faut trancher dans le vif ! Tiens les bases de données mysql de type InnoDB ne peuvent que grossir. On essaye de suivre la procédure pour limiter la casse décrite sur le blog de crazytoon [1]. Tout roule... sauf que mysql veut plus se lancer. Bon, pas trop grave pour le moment, vu que les données sont bien sagement rapatriées dans le /tmp de la nouvelle machine. Attention, vous venez de lire un élément important.
On galère, on cherche et au final on trouve. Peut-être un problème de quotas sur la nouvelle machine, peut-être aussi un problème d'options de mysql lors du mysql_install_db. Bref on peut maintenant importer les données. Sauf que les données, elles sont plus là :(( Un reboot intermédiaire a fait le ménage dans /tmp. Pas grave, on refait une copie du fichier depuis l'ancienne machine et ça devrait marcher. Sauf que ça marche pas : la machine est down. Murphy's law diront certains. Qu'on y croit ou pas, en tous cas, ça fait bien suer (je pensais à un autre mot, je l'avoue) !
Acte trois, téléphone de droite et de gauche pour accéder à la machine. "Pas moyen", elle est prise en otage car la société qui payait l'espace dans la baie ne payait plus, et ce depuis quelques mois ! Douche froide... et on est réduit à se demander : on paye et on récupère nos données, ou on cherche un backup en attendant que la situation se règle toute seule. Faute de moyen, ce sera la solution 2. Mais pour le coup, le backup le plus récent (en fait le seul que j'ai pu retrouver) datait de fin 2006.
Mine de rien, en subissant une migration foirée, on a inventé la machine à remonter le temps !
[1]http://crazytoon.com/2007/04/03/mysql-ibdata-files-do-not-sh(...)
> Lire le journal (67 commentaires, moyenne: 3).
Vous avez demandé le commentaire #919033.



Mise au point
Bon, c'est clair j'ai merdé et je m'en suis rendu compte.
J'ai aussi bien lu tous vos bons commentaires et je pense que j'ai oublié de préciser quelques trucs pour que je ne sois pas définitivement classé dans la catégorie des débiles mentaux, script kiddies ou admin débutants :
1. je ne suis pas admin de profession, et je sens que tout le monde respire mieux maintenant qu'ils savent qu'ils ne risquent pas d'avoir à me fréquenter dans ce cadre là :)
2. Je pense qu'on a tous fait des conneries un jour et que tout le monde en est ressorti un peu moins con que la veille.
3. Ce journal n'est pas seulement une auto flagellation, mais aussi un rappel pour tous que les backups sont plus que nécessaires et que c'est pas tout de les faire, faut aussi les faire correctement.
Sur ce dernier point, je vous remercie d'avoir apporté de l'eau au moulin avec des éléments constructifs.
Maintenant, que celui qui ne s'est jamais trompé me lance la première pierre...
[^]Re: Mise au point
2. Je pense qu'on a tous fait des conneries un jour et que tout le monde en est ressorti un peu moins con que la veille.
Suffit juste de demander, aux utilisateur d'emacs entre autre
"Qui a jamais fait rm * ~ ?
Ouep y'a plus grand monde dans la salle"
XD
L'autre truc qui est assez courant en entreprise (donc tu n'as pas à t'inquiéter) c'est de faire toute la conf d'un routeur cisco ou autre, et d'oublier d'écrire XD (lorsqu'on configure un cisco, la conf est en RAM, et on ne modifie donc que la ram. Il faut lui spécifier, une foi qu'on a terminé, de stocker la conf !).
Première panne de courant "Ben pourquoi le réseau marche pas ?"
Subete ga wakatta toki…watashi ga anta wo korosu.
[^]Re: Mise au point
le find / name core -print|xargs rm -f est bien aussi pour avoir une arborescence toute propre avec juste les noms de répertoire parce que tu as oublié le @#:! de - pour -name !
CKR Solutions Open Source
[^]Re: Mise au point
oh un simple et (trop) rapide rm -rf * en se rendant compte (trop tard) que l'on n'était pas dans le dossier voulu est assez efficace.
sinon j'ai vu aussi un subtil chmod -R 0777 à la racine assez ravageur
[^]Re: Mise au point
ah, ça c'est la raison pour laquelle je ne stocke plus rien dans /root (ou que je le mets aussi ailleurs...)
/bin/rm -R * # rha marche pas
su - # et zou ça va être bon
/bin/rm -R * # le copier/coller à la souris ça a du bon
... et merde le cd à faire avant /o\ (heureusement que je n'étais pas sur un slowlaris :D)
[^]Re: Mise au point
Pour les adeptes du prompt " a la windows" avec une ligneà copier du style:
root@toto : / >/bin/ls -l
Un caractere de trop dans le copier/coller et on vire la commande LS.
Les admins/utilisateurs qui utilisent de tels prompt devraient se faire virer/flagelller sans pitié.
[^]Re: Mise au point
C'est pour ça qu'il est intéressant d'avoir :
alias cp="cp -i"alias mv="mv -i"
alias rm="rm -i"
dans /etc/profile.d/alias.sh par exemple
Evidemment ça empêche pas les rm -Rf mais bon y'a un moment où on cherche vraiment à se faire du mal...
sinon, pour apporter de l'eau avec ma petite histoire personnelle :
j'avais une machine qui plantait souvent mais de manière aléatoire. Pensant que j'avais eu raison du système et profitant d'une nouvelle version de ma distrib, je me suis dit que j'allais la réinstaller.
Je fais des sauvegardes dans tous les sens, je tar.bz2 le tout (oui j'ai l plus haut, je sais que c'est maaal...) et je copie tout sur un disque externe.
Je formatte (évidemment sans avoir tenter de décompresser mon archive, réinstal ma machine ... qui continue à planter...
Pris d'une illumination, je fais un memtest -> qq dizaines de millier d'erreur -> contrôlleur mémoire HS... (mais ram OK)
Evidemment ... lecture impossible de l'archive, elle a été corrompue durant la copie vers mon disque externe, probablement à cause des problèmes mémoire.
Bilan : qq mois de documents (y compris très importants), mails et divers de perdu
Rq : j'ai toujours l'archive de côté, dans l'espoir qu'un jour j'arrive à récupper au moins une partie du contenu...
[^]Re: Mise au point
Servent à rien tes alias:
dans ma boîte, ils font tous \rm...
Sont des fois chiant les users :-P
Good judgement comes from experience and experience comes from bad judgement |
Faisez la mouche pas la guêpe...
[^]Re: Mise au point
\rm -rf users
[^]Re: Mise au point
Et penser à remettre ces alias sur toute nouvelle machine / tout nouveau compte.
Hier encore j'ai fait un "cp script*" au lieu de "cp script* destdir", et je n'avais évidemment que deux fichiers commençant par script...
(heureusement, ce n'était pas très critique, mais ca énerve quand même)
[^]Re: Mise au point
en fait je croyais que tout bon système le faisait par défaut... ;-)
En tout cas sous mandriva, il y a ceux-ci ainsi que ll, la, lsd ;-) cd.. (au lieu de cd ..)
Et le mieux à mon avis, est de le mettre directement dans la config de base du système, pour que tous les utilisateurs en profite directement.
[^]Re: Mise au point
en fait je croyais que tout bon système le faisait par défaut... ;-)
Il est la le risque ....
[^]Re: Mise au point
C'est pour ça qu'il est intéressant d'avoir :
alias cp="cp -i"
alias mv="mv -i"
alias rm="rm -i"
NON SURTOUT PAS !!!!
Parce que sinon tout le monde s'imagine que c'est le comportement par défaut de la commande, et c'est justementy parce qu'un jour ils seront sur un système ou il n'y a pas cet alias que ça va merder.
Unix/Linux a uin comportement précis, et suppose que l'intervenant SAIT CE QU'IL FAIT.
[^]Re: Mise au point
Mmmh, cela dit j'ai bien des alias de ce genre sur mon compte utilisateur courant, mais aucun alias sur les comptes root et utilisateur de mes machines.
Je profite d'un peu de simplicité sur ma machine mais je garde la rigueur nécessaire sur les machines du service.
[^]Re: Mise au point
Maintenant, que celui qui ne s'est jamais trompé me lance la première pierre...
Je suis d'accord; quelle a été la plus belle bêtise que vous avez faite?
Je démarre dans le mode <mavie>:
On me prévient que le site web a des problèmes. Je me connecte en vitesse en ssh, et effectivement tout est en vrac.
Des vieilles versions du site qui trainent, des vieux trucs, des services zarb qui tournent, une arborescence qui a été modifié, le souk complet.
Sueurs.
Je vais chercher des backups, je remonte le bin's, en plus le serveur rame comme pas permis, le service ftp est ouvert, le service smtp, j'espère qu'on s'est pas fait pirater. Je me rends compte que la base SQL est en vrac aussi, je remonte le minimum, je me déchire, j'arrive a faire un truc qui tourne sur trois pattes bien crado, mais bon.
Et là, je me rends compte que je me suis trompé d'adresse IP... J'étais connecté sur un vieux bouzin qui servait à faire du dev et non pas sur le serveur de prod.
10litres de sueur et 4h de perdues parceque je me suis précipité bêtement sans m'assurer de là ou j'étais.
[^]Re: Mise au point
1) rm blah* (un seul fichier blah, donc resultat "rm blah *"
2) durant l'install d'un bsd (valable pour un linux aussi) sur une machine :
- tout virer de hda2,mettre en securité sur hda1
- lancer l'installeur
- formater hda1
- tient il est ou mon linux?
[^]Re: Mise au point
1) rm blah* (un seul fichier blah, donc resultat "rm blah *"
Euh, non.
[^]Re: Mise au point
Il a du oublier:
rm blah*
S'il n'y a qu'un seul fichier le tab rajoutera un espace.
[^]Re: Mise au point
<tab> je suppose ?
[^]Re: Mise au point
30000 fenêtres de terminal ouvertes, je tape
#reboot
sans prêter attention sur quelle machine je me trouvais.
Resulats: serveur principal (NIS avec le share NFS des homes de tous les users)
et le pompom, le scan des volumes au reboot puisqu'on ne le redemarre pas tout le jours cette bonne bête... et 2To c'est long...
p.s oui il y a un alias maintenant.
Good judgement comes from experience and experience comes from bad judgement |
Faisez la mouche pas la guêpe...
[^]Re: Mise au point
J'ai fais la même boulette il y a longtemps.
Mais ce n'était pas vraiment de ma faute. J'avais une nouvelle bécane de développement. Pour le développement, on a le mot de passe root. Je demande le mot de passe à l'admin, il me le donne et je le sent un peu embarassé.
Quelques minutes après je veux rebooter la bécane (pour passer sur la dernière version de l'OS et faire des tests/portages/etc), je fais "su ... reboot". Sauf que j'étais sur le serveur...
Cet "abrutis" d'admin avait mis le même mot de passe root sur ma bécane que sur le serveur.
Heureusement ce n'était pas 30 000 utilisateur, mais une bonne cinquantaine. En 5 secondes on m'enformait que le serveur était down. Ce qui expliquait que ma bécane n'était en train de rebooter...
[^]Re: Mise au point
Mais ce n'était pas vraiment de ma faute. ( ... )
Cet "abrutis" d'admin avait mis le même mot de passe root sur ma bécane que sur le serveur.
J'aime ton sens de la remise en questions et du respect des autres...
You got the money, I got the soul.
[^]Re: Mise au point
Maintenant, que celui qui ne s'est jamais trompé me lance la première pierre...Si tu fais référence à JC alors tu vas avoir droit a une crucifiction et si c'est son papa alors ca va être un météore :)
[+] [^]Re: Mise au point
Que vient faire la ligne 14 la dedans ???
[^]Re: Mise au point
tiens un autre truc , je crée un repertoire usbdisk je monte a la main (avec sudo) mon disque de 500Go usb, je fais autre chose et je m'appercois que finalement je me suis trompé dans le nom c'est diskusb plutot
hop je l'efface sudo rm -r usbdisk
rrrrrrr (ronronement du disque dur)
ctrl+C
bref un manque d'attention, snif