Device Start End Sectors Size Type
/dev/sda1 34 32767 32734 16M Microsoft reserved
/dev/sda2 32768 450592767 450560000 214.9G Microsoft basic data
/dev/sda3 450592768 937699327 487106560 232.3G Microsoft basic data
Disk /dev/sdb: 7.5 GiB, 8004829184 bytes, 15634432 sectors
Disk model: USB Flash Drive
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x529e475f
j’ ai des applications imprtantes sur cette machine est ce qu’il y a un moyen de recuperer mes fichiers
ta ligne de commande est celle que tu as faite ou que tu écris ici de mémoire?
l’avais-tu déjà utilisée? Je ne ferais JAMIS ça : find $BACKUP_DIR/* : au minimu mettre des doubles guillemets autoru du $BACKUP_DIR ; en effet si par exemple BACKUP_DIR="/home sauvegarde" alors sans les guillemets ça devient deux dossiers dont l’un est /home !!! à cause de l’espace mal placé
/backup/ est un dossier de / sur nvme0n1 ( /dev/nvme0n1p2 ) ou un deuxième disque dur qui n’apparaît pas ici.?
tu as perdu tout ton disque ou « seulement » /boot
sinon, bien que ne connaissant pas du tout mongodump, je vois sur leur doc (https://www.mongodb.com/docs/database-tools/mongodump/) qu’ils sauvegardent quelquechose ( --uri= e ou --host= ) et je ne vois rien de comparable dans ta ligne de commande .
Peux tu nous donner le listing du script et non une partie manuelle?
Le risque que tu as c’est que dans la commande find $BACKUP_DIR/* -type d -mtime +7 -exec rm -rf {} \
si $BACKUP_DIR est vide, ça revient à: find /* -type d -mtime +7 -exec rm -rf {} \
Ce qui signifie que tu as effacé tous les répertoires qui ont été modifié depuis les 7 derniers jours.
Le problème c’est que si tu as tout effacé pas moyen de démarrer la machine.
Il te faut une autre machine sur laquelle monter ton disque endommagé. Et de l’OS de cette deuxième machine utiliser testdisk (ou une autre application de récupération de données) pour tenter de récupérer les données. Ne fait surtout aucune tentative d’écriture sur ce disque sinon tu risques de tout perdre.
Les find $var -exec fonctions{} \ sont dangereux, en cas d’erreur dans le find tu peux effectivement flinguer complètement une machine.
Mieux vaut faire la commande sans l’exec manuellement pour s’assurer que le résultat du find est bien conforme à ce qu’on en attend.
Concernant ta commande mongodump: mongodump --username user --password password --out $BACKUP_DIR/$DATE --authenticationDatabse admin;
Il a donc utilisé par défaut localhost (127.0.0.1) avec le port 27017. authenticationDatabse est erroné car avec une erreur de typographie => authenticationDatabase="admin" , la bdd doit etre entre double quotes.
Ce que je ne comprends pas c’est que tu fait un dump de ta BDD dans un répertoire dont le find vient ensuite effacer tout les répertoires ce qui s’y trouve, y compris ce que tu viens de sauvegarder.
Car mongodump va créer un répertoire du nom de ta base de donnée dans le répertoire de backup, donc tu aura:
d:/backup/mongodb => $BACKUP_DIR
d:/backup/mongodb/$DATE/
d:/backup/mongodb/$DATE/admin/
--out est le nom du répertoire de destination de ta sauvegarde, pas celui du fichier.
Donc ta commande fin va exécuter un rm -fr sur les répertoires:
d:/backup/mongodb/$DATE/
d:/backup/mongodb/$DATE/admin/
Merci Dindoun , Zargos pour votre éclairage je pense que j’ai fait une grande bourde le disque sur lequel je boot est le nvme avec deux partition nvme0n1p4 et nvme0n1p2 les deux autres on est êtes crée par debian je vais installer un disque ssd sur lequel j’installe debian 12 et je vais essayer testdisk
merci encore pour vos conseils
Oui donc c’est bien ca, ta ligne find n’est pas bonne.
Dans ton script:
Remplacer BACKUP_DIR="/backup/mongodb"
par export BACKUP_DIR="/backup/mongodb"
Remplacer mkdir -p $BACKUP_DIR/$DATE
par [ -d $BACKUP_DIR/$DATE ] && mkdir -p $BACKUP_DIR/$DATE
Remplacer find $BACKUP_DIR/* -type d -mtime +7 -exec rm -rf {} ;
par find $BACKUP_DIR/$DATE/admin/* -type d -mtime +7 -exec rm -rf {} ;
Pour récupérer tes données, il va te falloir utiliser un outil de récupération de données que tu peux lancer à partir d’un livecd avec (tu utilises apt dans une console de la livecd en root[sudo su -]):
testdisk (préféré)
extundelete
AUPARAVANT: il est judicieux de faire un clone de ta(tes) partition(s):
Soit à partir d’un livecd et de la commande dd
Soit à partir d’une iso de clonezilla
Ceci afin de conserver l’état actuel avant toute tentative.
Il te faudra de fait un stockage assez grand pour conserver ces données, soit distant sur un autre serveur qui a assez de stockage, soit sur un disque externe qui a assez de stockage disponible aussi.