Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| clamav [2025/11/11 09:00] – [Scanner son système] cyrille | clamav [2025/11/12 14:26] (Version actuelle) – cyrille | ||
|---|---|---|---|
| Ligne 28: | Ligne 28: | ||
| - | < | + | <code | download> |
| sudo nano / | sudo nano / | ||
| </ | </ | ||
| Ligne 34: | Ligne 34: | ||
| Avec le contenu | Avec le contenu | ||
| - | < | + | <code | download> |
| #!/bin/bash | #!/bin/bash | ||
| # Script : freshclam-auto.sh | # Script : freshclam-auto.sh | ||
| Ligne 73: | Ligne 73: | ||
| On le sauvegarde et on le rend exécutable | On le sauvegarde et on le rend exécutable | ||
| - | < | + | < |
| sudo chmod +x / | sudo chmod +x / | ||
| </ | </ | ||
| Ligne 84: | Ligne 84: | ||
| - | < | + | < |
| [Unit] | [Unit] | ||
| Description=Update ClamAV database 10 minutes after boot (only if outdated) | Description=Update ClamAV database 10 minutes after boot (only if outdated) | ||
| Ligne 104: | Ligne 104: | ||
| On recharge systemd, on active ce script et le lance : | On recharge systemd, on active ce script et le lance : | ||
| - | < | + | < |
| sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
| sudo systemctl enable freshclam.service | sudo systemctl enable freshclam.service | ||
| Ligne 123: | Ligne 123: | ||
| - | < | + | < |
| / | / | ||
| weekly | weekly | ||
| Ligne 143: | Ligne 143: | ||
| Ce qui donnera finalement dans l’arborescence des logs | Ce qui donnera finalement dans l’arborescence des logs | ||
| - | < | + | < |
| / | / | ||
| / | / | ||
| Ligne 154: | Ligne 154: | ||
| Et voici un exemple de leur contenu | Et voici un exemple de leur contenu | ||
| - | < | + | < |
| / | / | ||
| 2025-11-13 10:12:00 - Lancement de freshclam... | 2025-11-13 10:12:00 - Lancement de freshclam... | ||
| Ligne 173: | Ligne 173: | ||
| - | < | + | < |
| #!/bin/bash | #!/bin/bash | ||
| # Script pour afficher les dernières mises à jour ClamAV | # Script pour afficher les dernières mises à jour ClamAV | ||
| Ligne 206: | Ligne 206: | ||
| Et on peut le tester | Et on peut le tester | ||
| - | < | + | < |
| sudo / | sudo / | ||
| </ | </ | ||
| Ligne 212: | Ligne 212: | ||
| Ce qui donnera une sortie de ce style | Ce qui donnera une sortie de ce style | ||
| - | < | + | < |
| ===== Dernières mises à jour ClamAV ===== | ===== Dernières mises à jour ClamAV ===== | ||
| --- Log actuel (freshclam-update.log) --- | --- Log actuel (freshclam-update.log) --- | ||
| 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 " | trap 'rm -f " | ||
| - | | + | # Construction dynamique des exclusions si c'est la racine |
| - | if [ " | + | if [ " |
| - | PRUNE_EXPR="" | + | # Liste des chemins à exclure pour le scan du système |
| - | for DISK in " | + | EXCLUDES=( |
| - | [ " | + | "/ |
| - | done | + | "/ |
| - | PRUNE_EXPR=${PRUNE_EXPR% -o} | + | "/ |
| - | find / \( $PRUNE_EXPR \) -prune -o -type f -newermt " | + | "/ |
| - | else | + | "/ |
| - | find " | + | "/ |
| - | fi | + | "/ |
| + | "/ | ||
| + | "/ | ||
| + | "/ | ||
| + | "/ | ||
| + | "/ | ||
| + | ) | ||
| + | |||
| + | # Construction dynamique du filtre d' | ||
| + | | ||
| + | |||
| + | # On exclut d' | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | # Puis on ajoute les exclusions système | ||
| + | for EXCL in " | ||
| + | PRUNE_EXPR=" | ||
| + | done | ||
| + | |||
| + | # Supprime le dernier -o éventuel (sinon find râle) | ||
| + | | ||
| + | |||
| + | echo " | ||
| + | |||
| + | # Recherche des fichiers modifiés en ignorant les exclusions | ||
| + | | ||
| + | else | ||
| + | # Pour les autres montages, on scanne tout | ||
| + | | ||
| + | fi | ||
| if [ -s " | if [ -s " | ||
| Ligne 359: | Ligne 390: | ||
| fi | fi | ||
| done | done | ||
| + | |||
| + | |||
| + | |||
| + | |||
| </ | </ | ||
| Ligne 364: | Ligne 399: | ||
| Il va falloir que vous adaptiez cette fonction bash à votre environnement | Il va falloir que vous adaptiez cette fonction bash à votre environnement | ||
| - | < | + | < |
| declare -A MOUNTS_SCHEDULE=( | declare -A MOUNTS_SCHEDULE=( | ||
| ["/ | ["/ | ||
| Ligne 376: | Ligne 411: | ||
| Pensez également à adapter cette ligne | Pensez également à adapter cette ligne | ||
| - | < | + | < |
| MAILTO=" | MAILTO=" | ||
| </ | </ | ||
| Ligne 386: | Ligne 421: | ||
| - | < | + | < |
| 0 * * * * / | 0 * * * * / | ||
| </ | </ | ||
| Ligne 397: | Ligne 432: | ||
| - | < | + | < |
| / | / | ||
| weekly | weekly | ||
| Ligne 421: | Ligne 456: | ||
| - | < | + | < |
| + | # --- Date de scan --- | ||
| print_clamav_last_run() { | print_clamav_last_run() { | ||
| local mount=$1 | local mount=$1 | ||
| - | local base=$(basename " | + | local base |
| - | [ -z "$base" ] && | + | |
| + | | ||
| + | else | ||
| + | base=$(basename " | ||
| + | fi | ||
| local ts_file="/ | local ts_file="/ | ||
| 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 [ " | if [ " | ||
| color=$GREEN | color=$GREEN | ||
| Ligne 446: | Ligne 487: | ||
| fi | fi | ||
| - | # Alignement | + | |
| - | printf " | + | local label=" |
| + | [ " | ||
| + | |||
| + | | ||
| + | printf " | ||
| } | } | ||
| + | |||
| </ | </ | ||
| Et pour insérer les entrées, ajouter les lignes suivantes à votre dashboard | Et pour insérer les entrées, ajouter les lignes suivantes à votre dashboard | ||
| - | < | + | < |
| echo "💽 Disques :" | echo "💽 Disques :" | ||
| MOUNTS=("/ | MOUNTS=("/ | ||