#!/bin/bash # Script : freshclam-auto.sh # Objectif : mettre à jour la base ClamAV uniquement si elle a plus de 24h LOGFILE="/var/log/freshclam-update.log" DBDIR="/var/lib/clamav" MAX_AGE_HOURS=24 # Trouver le fichier principal de la base (daily.cvd ou daily.cld) DBFILE=$(ls -t "$DBDIR"/daily.* 2>/dev/null | head -n 1) # Si la base existe, calculer son âge if [ -f "$DBFILE" ]; then LAST_UPDATE=$(stat -c %Y "$DBFILE") NOW=$(date +%s) AGE_HOURS=$(( (NOW - LAST_UPDATE) / 3600 )) if [ "$AGE_HOURS" -lt "$MAX_AGE_HOURS" ]; then echo "$(date '+%F %T') - Base récente ($AGE_HOURS h), mise à jour ignorée." >> "$LOGFILE" exit 0 fi fi # Si la base n’existe pas ou trop vieille, on met à jour echo "$(date '+%F %T') - Lancement de freshclam..." >> "$LOGFILE" /usr/bin/freshclam --quiet >> "$LOGFILE" 2>&1 RET=$? if [ "$RET" -eq 0 ]; then echo "$(date '+%F %T') - Mise à jour réussie." >> "$LOGFILE" else echo "$(date '+%F %T') - Erreur freshclam (code $RET)." >> "$LOGFILE" fi