Restaurer un pad supprimé
Préambule
Les pads sont consommateurs d’espace en base de données. Chaque caractère donne quasiment lieu à une nouvelle entrée en base. Pour des raisons de performance, il est souhaitable de garder une taille de base de données raisonnable.
Pour cette raison, les pads qui ne sont pas actifs sont automatiquement supprimés après un certain délai (à ce jour, 2 ans sur l’instance principale et 15 jours sur l’instance week
).
Note:
La suppression se fait grâce à une tâche qui tourne régulièrement dans un conteneur Docker séparé. Le dépôt est ici. Cette méthode est préférable pour les instances de “grande taille”, car la boucle de suppression intégrée au plugin ralentit considérablement l’instance. Ici, via les appels à l’API assez lents, le script ne ralentit pas l’instance.
Il arrive que des utilisateurices perdent l’accès à un pad parce que les 15 jours sont passés trop vite. Heureusement, le script exporte une copie HTML du pad.
Récupérer et restaurer le pad
D’abord, identifier l’instance, se rendre sur la machine où elle tourne, dans le dossier de déploiement (voir gestion des services). Ensuite, se rendre dans le conteneur qui fait tourner le script de suppression :
$ docker-compose exec delete-pad-after-delay bash
Tous les pads supprimés se trouvent dans le dossier /opt/etherpad-lite/deleted_pads
. On s’y rend :
# cd /opt/etherpad-lite/deleted_pads
Note:
Les pads sont répartis dans une arborescence en fonction des premières lettres de leur identifiant. Un timestamp est adjoint à leur nom.
On utilise une commande find
pour chercher le pad, par exemple pour un identifiant super_réu
:
# find ~+ -type f -name "super_réu*" /opt/etherpad-lite/deleted_pads/S/U/p/super_réu-1609281626000.html
Attention:
Attention à l’*
pour ne pas rater un fichier.
On peut alors sortir du conteneur et le copier dans un fichier temporaire :
- snippet.bash
docker cp $(docker-compose ps -q delete-pad-after-delay):/opt/etherpad-lite/deleted_pads/S/U/p/super_réu-1609281626000.html /tmp/pad.html
Ensuite, on peut le rsync
sur son poste de travail, par exemple :
- snippet.bash
rsync login@pica01.picasoft.net:/tmp/pad.html .
Enfin, on se rend sur l’URL du pad qui a été supprimé, et on utilise la fonctionnalité d’import HTML pour restaurer le pad.
À ce stade, le pad est restauré ainsi que le formatage, mais pas les révisions !