technique:adminserv:etherpad:recover_deleted_pad

Restaurer un pad supprimé

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.

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 !

  • technique/adminserv/etherpad/recover_deleted_pad.txt
  • de ppom