Outils pour utilisateurs

Outils du site


clamav

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édentesRévision précédente
Prochaine révision
Révision précédente
clamav [2025/11/11 09:02] – [Scanner son système] cyrilleclamav [2025/11/12 14:26] (Version actuelle) cyrille
Ligne 263: Ligne 263:
 # Exclusions dynamiques des sous-montages # Exclusions dynamiques des sous-montages
 # Usage : cron toutes les heures # Usage : cron toutes les heures
-# Auteur : version finale durcie par GPT+# Auteur : CB
 # ============================================================ # ============================================================
  
Ligne 313: Ligne 313:
             trap 'rm -f "$FILE_LIST"' EXIT             trap 'rm -f "$FILE_LIST"' EXIT
  
-            # Construction dynamique des exclusions si c'est la racine + # Construction dynamique des exclusions si c'est la racine 
-            if [ "$MOUNT" == "/" ]; then + if [ "$MOUNT" == "/" ]; then 
-                PRUNE_EXPR="" +     # Liste des chemins à exclure pour le scan du système 
-                for DISK in "${!MOUNTS_SCHEDULE[@]}"; do +     EXCLUDES=( 
-                    [ "$DISK" != "/" ] && PRUNE_EXPR="$PRUNE_EXPR -path $DISK -o" +         "/proc" 
-                done +         "/sys" 
-                PRUNE_EXPR=${PRUNE_EXPR% -o} +         "/dev" 
-                find / \( $PRUNE_EXPR \) -prune -o -type f -newermt "$LAST_RUN" -print0 > "$FILE_LIST" +         "/run" 
-            else +         "/var/run" 
-                find "$MOUNT" -type f -newermt "$LAST_RUN" -print0 > "$FILE_LIST" +         "/tmp" 
-            fi+         "/var/tmp" 
 +         "/var/cache" 
 +         "/var/lib/apt/lists" 
 +         "/boot" 
 +         "/usr/share/doc" 
 +         "/usr/share/man" 
 +     ) 
 + 
 +     # Construction dynamique du filtre d'exclusion 
 +     PRUNE_EXPR="" 
 +      
 +     # On exclut d'abord les autres points de montage définis dans MOUNTS_SCHEDULE 
 +     for DISK in "${!MOUNTS_SCHEDULE[@]}"; do 
 +         [ "$DISK" != "/" ] && PRUNE_EXPR="$PRUNE_EXPR -path $DISK -o" 
 +     done 
 + 
 +     # Puis on ajoute les exclusions système 
 +     for EXCL in "${EXCLUDES[@]}"; do 
 +         PRUNE_EXPR="$PRUNE_EXPR -o -path $EXCL" 
 +     done 
 + 
 +     # Supprime le dernier -o éventuel (sinon find râle) 
 +     PRUNE_EXPR=${PRUNE_EXPR% -o} 
 + 
 +     echo "Exclusions actives : $PRUNE_EXPR" >> "$LOGFILE" 
 + 
 +     # Recherche des fichiers modifiés en ignorant les exclusions 
 +     find / \( $PRUNE_EXPR \) -prune -o -type f -newermt "$LAST_RUN" -print0 > "$FILE_LIST" 
 + else 
 +     # Pour les autres montages, on scanne tout 
 +     find "$MOUNT" -type f -newermt "$LAST_RUN" -print0 > "$FILE_LIST" 
 + fi
  
             if [ -s "$FILE_LIST" ]; then             if [ -s "$FILE_LIST" ]; then
Ligne 359: Ligne 390:
     fi     fi
 done done
 +
 +
 +
 +
 </code> </code>
  
Ligne 422: Ligne 457:
  
 <code  | download> <code  | download>
 +# --- Date de scan ---
 print_clamav_last_run() { print_clamav_last_run() {
     local mount=$1     local mount=$1
-    local base=$(basename "$mount") +    local base 
-    [ -z "$base" ] && base="root"+    if [ "$mount" = "/" ]; then 
 +        base="_" 
 +    else 
 +        base=$(basename "$mount"
 +    fi
     local ts_file="/var/log/clamscan-last-${base}.timestamp"     local ts_file="/var/log/clamscan-last-${base}.timestamp"
     local color=$GREEN     local color=$GREEN
Ligne 435: Ligne 475:
         local now_epoch=$(date +%s)         local now_epoch=$(date +%s)
         local age_hours=$(( (now_epoch - last_epoch) / 3600 ))         local age_hours=$(( (now_epoch - last_epoch) / 3600 ))
 +
         if [ "$age_hours" -le 24 ]; then         if [ "$age_hours" -le 24 ]; then
             color=$GREEN             color=$GREEN
Ligne 446: Ligne 487:
     fi     fi
  
-    # Alignement à 19 caractères pour la date +    # Affichage : "root" explicite pour / 
-    printf "   ClamAV last scan on %-12s : ${color}%-19s${RESET}\n" "$mount" "$last_run"+    local label="$mount" 
 +    [ "$mount" = "/" ] && label="/ (root)" 
 + 
 +    # Alignement propre sur 12 + 19 caractères 
 +    printf "   ClamAV last scan on %-12s : ${color}%-19s${RESET}\n" "$label" "$last_run"
 } }
 +
 </code> </code>
  
clamav.1762851753.txt.gz · Dernière modification : de cyrille