ownCloud 6 : réparer une erreur de synchronisation / chiffrement

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

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.