technique:adminserv:etherpad:recover_deleted_pad

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
technique:adminserv:etherpad:recover_deleted_pad [2021/01/26 18:54] qduchemitechnique:adminserv:etherpad:recover_deleted_pad [2023/01/15 22:03] (Version actuelle) ppom
Ligne 1: Ligne 1:
 +{{indexmenu_n>5}}
  
 +# 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`).
 +
 +<bootnote>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](https://gitlab.utc.fr/picasoft/projets/delete-pad-after-delay). 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.</bootnote>
 +
 +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 [[technique:docker:picasoft:start|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
 +```
 +
 +<bootnote>Les pads sont répartis dans une arborescence en fonction des premières lettres de leur identifiant. Un timestamp est adjoint à leur nom.</bootnote>
 +
 +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
 +```
 +
 +<bootnote warning>Attention à l'`*` pour ne pas rater un fichier.</bootnote>
 +
 +On peut alors sortir du conteneur et le copier dans un fichier temporaire :
 +
 +```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 :
 +
 +```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.
 +
 +{{ :technique:adminserv:etherpad:import_pad.png |}}
 +
 +À ce stade, le pad est restauré ainsi que le formatage, mais pas les révisions !