Développement #100738
Clamd : rescanner régulièrement les fichier déjà scannés
0%
Description
Parce que la base de donnée de clamav est mise à jour régulièrement.
J'imagine un job lancé toutes les 10 minutes genre, qui va examiner les fichiers qui ont été scannés il y a plus d'une semaine, et qui re-scanne.
Toutes les 10 minutes parce j'imagine que sur le long terme ça aboutit à bien lisser le boulot, que le job sera en permanence en train de scanner juste quelques fichiers et rendre la main.
Peut-être coupler ça avec une limite, ne jamais scanner plus de 50 fichiers d'un seul coup par exemple.
History
Updated by Thomas Noël 2 months ago
Guillaume Baffoin a écrit :
on a généralement des grosses volumétries de fichier sur wcs et ca risque a la fin d'être une sacrée charge sur les disques ?
et pourquoi pas une fois par jour vers 22H ?
C'est en lecture seule, j'aurais presque confiance...
Sur surtout, sur une infra avec NFS, ça serait intéressant de savoir si ce job pourrait être lancé directement sur le serveur NFS. On gagnerait certainement beaucoup en perf, mais on pourrait aussi contrôler la nuisance de l'affaire par ionice.
Updated by Benjamin Dauvergne 2 months ago
Thomas Noël a écrit :
Sur surtout, sur une infra avec NFS, ça serait intéressant de savoir si ce job pourrait être lancé directement sur le serveur NFS. On gagnerait certainement beaucoup en perf, mais on pourrait aussi contrôler la nuisance de l'affaire par ionice.
On pourrait aussi simplement lancer un job de validation quand le fichier est affiché en front et que sa validation est plus vieille que le seuil et que quelqu'un tente de le télécharger, comme ça on ne fait rien sur les demandes que personne ne regardera jamais (et on considère la validation existante comme obsolète si file_data.clamd['timestamp'] < now - 1 week
).
Updated by Emmanuel Cazenave 2 months ago
Benjamin Dauvergne a écrit :
On pourrait aussi simplement lancer un job de validation quand le fichier est affiché en front et que sa validation est plus vieille que le seuil et que quelqu'un tente de le télécharger, comme ça on ne fait rien sur les demandes que personne ne regardera jamais (et on considère la validation existante comme obsolète si
file_data.clamd['timestamp'] < now - 1 week
).
J'amenderais légèrement, ou pourrait rescaner quand :
- le fichier s'affiche en front ou en back, peu importe que le téléchargement soit tenté ou pas (actuellement on affiche un statut de scan sur les fichiers "ok" "pas ok" "en attente" avant le téléchargement, donc autant afficher tout de suite "le fichier est attente de scan" peu importe que ce soit ensuite téléchargé ou pas, niveau parcours on se retrouve exactement dans la même situation qu'au moment de l'upload initial, c'est simple)
- et que le délai d'une semaine est dépassé
Ça me semble être une chouette première passe green tech friendly, je vais partir là dessus s'il n'y pas d'objections.
Updated by Robot Gitea 2 months ago
- Status changed from Nouveau to En cours
- Assignee set to Emmanuel Cazenave
Emmanuel Cazenave (ecazenave) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/2117
- Titre : WIP: wip/100738-clamd-rescan
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/2117/files
Updated by Emmanuel Cazenave about 2 months ago
Emmanuel Cazenave a écrit :
- le fichier s'affiche en front ou en back, peu importe que le téléchargement soit tenté ou pas
Je mange mon chapeau, ça va lancer des afterjob à tout bout de champ des qu'on affiche une demande, c'est n'importe quoi.
Je finalise sur l'approche suivante :
- au moment du téléchargement on vérifie la date du scan
- si c'est trop vieux on scan à la volée sans stocker l'info sur le formdata, juste pour avoir l'info à jour sous la main (on a besoin pour avoir si autorise le téléchargement) + on balance un after job qui refera le scan complet du formdata et qui stockera le résultat