ownCloud 6 : réparer une erreur de synchronisation / chiffrement
Suite à une migration vers owncloud 6 – mon serveur de cloud perso – je me suis retrouvé face à un problème fort embarrassant. Je suis simplement venu partager ma solution ici! La nouvelle version est bien agréable niveau ergonomie et quelques fonctionnalités se sont vu ajoutés qui sont appréciables (nouveautés ici). Cependant, j’ai eu beaucoup de mal à passer de la version 5 à la version 6. Une mise à jour manuelle me faisait disparaître le site (blank page), et une réinstallation me donnait le même résultat.. J’ai donc fini par essayer la version “web installer” fourni par le site, me permettant de passer à la version 6.0.1! Houra!
A noter que la version 6.0.2 et sortie, et que lorsqu’on voit “several security fixes” en tête de liste, je conseille fortement de passer à cette release!
Ayant un cloud de nouveau à jour et fonctionnel, je me suis mis à jeter un oeil du côté des applications proposées. “Tiens, et si j’essayais l’appli chiffrement de fichier” –> grosse erreur! Le chiffrement de mes 50Gb de données a planté, et finalement je ne sais pas si c’est ça ou bien la mise à jour, mais tous mes fichiers sont corrompus! Heureusement, le client de synchronisation a par sécurité copié toutes les fichiers, et je me retrouve avec pour chaque donnée:
– Une version se nommant correctement, mais corrompue- Une version non corrompue heureusement, mais renommé en “monfichier_conflictXXX.extension”
Fouuuuuuu que c’est relou de bidouiller dans ces moments là! Bon ben au boulot, premièrement je copie tout sur un disque externe pour avoir un backup au cas où, puis ensuite je supprime tous les fichiers corrompues à l’aide de la commande:
find ./home/valou/owncloud -type f ! -name "*conflict*"
Me reste plus que tout plein de fichiers contenant “conflict” dans le nom, et qui en plus empêcherait une éventuelle synchronisation du à ce mot clé… Eh bien après un peu de travail, voilà un script qui m’a permis de renommer tous mes fichiers, en supprimant simplement le “_conflictXXXYYYY” et en gardant l’extension! Voilà le code:
#!/bin/bash # Description: Parcours tous les fichiers et les renomme en supprimant "conflict.XXX" sur chaque nom # By Valou dir="$(pwd)" echo echo "=========================================" echo echo "Enter to run rescue files on $dir" read echo "==========================================" echo "========== Rescue files running ==========" echo "==========================================" echo # Regex pour supprimer le _conflict* du nom de fichier sans l extension regex="sed -n 's|.*/(.*)_conflict-[0-9]*-[0-9]*(.*)|12|p'" # Commande pour parcourir l'arborescence du dossier courant cmd="$(find ./ -type f -name *conflict*)" #Définition du separateur de champ old_IFS=$IFS IFS=$'n' echo "..." sleep 1 # Boucle principale du programme for file in ${cmd}; do path="$(echo $file | sed -n 's|(.*/).*conflict.*|1|p')" nvnom="$(echo $file | sed -n 's|.*/(.*)_conflict-[0-9]*-[0-9]*(.*)|12|p')" $(mv $file $path$nvnom) done # Affectation du separateur de champ par defaut IFS=$old_IFS echo echo "==========================================" echo "================= Done! ==================" echo "==========================================" echo exit 0
Cette upgrade ne ce sera pas vraiment déroulé comme prévu, mais au moins j’ai révisé bash et les expressions régulières (au programme ce semestre, génial!). Et puis autant vous dire que j’ai viré l’appli de chiffrement, surtout que mon disque dur est déjà entièrement chiffré (la curiosité est un vilain défaut!).
Laisser un commentaire