Project

General

Profile

Développement #100738

Clamd : rescanner régulièrement les fichier déjà scannés

Added by Emmanuel Cazenave 2 months ago. Updated 4 days ago.

Status:
Solution proposée
Priority:
Normal
Target version:
-
Start date:
14 January 2025
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

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

#1

Updated by Emmanuel Cazenave 2 months ago

  • Description updated (diff)
#3

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.

#4

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).

#5

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.

#6

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 :

#7

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
#8

Updated by Robot Gitea 4 days ago

  • Status changed from En cours to Solution proposée

Also available in: Atom PDF