27 lines
721 B
Plaintext
27 lines
721 B
Plaintext
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
SCAN_DIR="<%= @cv_scan_dir %>"
|
|
LOG_FILE="<%= @cv_logfile %>"
|
|
TMP_ALERT="<%= @cv_alert_file %>"
|
|
EMAIL="<%= @cv_alert_email %>"
|
|
|
|
# Ensure the log directory exists
|
|
mkdir -p "$(dirname "$LOG_FILE")"
|
|
|
|
# Preferred: clamdscan with multiscan + fdpass
|
|
clamdscan --multiscan --fdpass --infected --log="$LOG_FILE" "$SCAN_DIR" > /dev/null || true
|
|
|
|
# Check for infections (same logic as before)
|
|
if grep -q "Infected files: [^0]" "$LOG_FILE" 2>/dev/null; then
|
|
{
|
|
echo "ClamAV has found infected files on $(hostname)!"
|
|
echo ""
|
|
grep "FOUND" "$LOG_FILE" || true
|
|
} > "$TMP_ALERT"
|
|
|
|
mail -s "⚠️ ClamAV Alert on $(hostname)" "$EMAIL" < "$TMP_ALERT"
|
|
fi
|
|
|
|
rm -f "$TMP_ALERT"
|