ClamAV在macOS上的离线查杀与定时扫描实战(含clamd加速)

文章目录

  • [ClamAV 在 macOS 上的离线查杀与定时扫描实战(含 clamd 加速)](#ClamAV 在 macOS 上的离线查杀与定时扫描实战(含 clamd 加速))
    • 目录
    • [1. 一张图看懂 ClamAV 组件](#1. 一张图看懂 ClamAV 组件)
    • [2. 安装路线怎么选:Homebrew vs 官方 pkg](#2. 安装路线怎么选:Homebrew vs 官方 pkg)
    • [3. 路径确认:你装到了哪里](#3. 路径确认:你装到了哪里)
      • [3.1 官方 pkg 常见路径](#3.1 官方 pkg 常见路径)
      • [3.2 Homebrew 常见路径](#3.2 Homebrew 常见路径)
    • [4. 初始化:更新病毒库 freshclam(别再 chmod 777)](#4. 初始化:更新病毒库 freshclam(别再 chmod 777))
      • [4.1 官方 pkg:复制配置并启用](#4.1 官方 pkg:复制配置并启用)
      • [4.2 Homebrew:配置位置与更新](#4.2 Homebrew:配置位置与更新)
      • [4.3 更新失败最常见的 3 个原因](#4.3 更新失败最常见的 3 个原因)
      • [4.4 如果你启用了 clamd:让更新后自动 reload](#4.4 如果你启用了 clamd:让更新后自动 reload)
    • [5. 扫描实战:我最常用的 6 条命令](#5. 扫描实战:我最常用的 6 条命令)
      • [5.1 只扫 Downloads,只输出命中的文件(最常用)](#5.1 只扫 Downloads,只输出命中的文件(最常用))
      • [5.2 扫描并生成日志(方便留档/复盘)](#5.2 扫描并生成日志(方便留档/复盘))
      • [5.3 命中即隔离(推荐用 move,不推荐 remove)](#5.3 命中即隔离(推荐用 move,不推荐 remove))
      • [5.4 排除一些"只会拖慢你"的目录](#5.4 排除一些“只会拖慢你”的目录)
      • [5.5 只扫特定类型(比如只关心 Windows 可执行文件)](#5.5 只扫特定类型(比如只关心 Windows 可执行文件))
      • [5.6 扫外接盘(移动盘/共享盘)](#5.6 扫外接盘(移动盘/共享盘))
      • [5.7 自测链路:用 EICAR 测试文件确认"能抓到"](#5.7 自测链路:用 EICAR 测试文件确认“能抓到”)
    • [6. 扫大目录更快:用 clamdscan(守护进程模式)](#6. 扫大目录更快:用 clamdscan(守护进程模式))
      • [6.1 最小可用的 clamd.conf(思路)](#6.1 最小可用的 clamd.conf(思路))
      • [6.2 启动 clamd 并用 clamdscan 扫描](#6.2 启动 clamd 并用 clamdscan 扫描)
    • [7. 定时更新 + 定时扫描:launchd 配置模板](#7. 定时更新 + 定时扫描:launchd 配置模板)
      • [7.1 扫描脚本模板(建议放在固定路径)](#7.1 扫描脚本模板(建议放在固定路径))
      • [7.2 LaunchDaemon:每天更新病毒库(示例)](#7.2 LaunchDaemon:每天更新病毒库(示例))
      • [7.3 定时扫描(示例:每天 04:00 扫 Downloads)](#7.3 定时扫描(示例:每天 04:00 扫 Downloads))
    • [8. 隔离与留痕:把结果变成"可追踪"](#8. 隔离与留痕:把结果变成“可追踪”)
    • [9. 卸载与清理(brew/pkg 两套)](#9. 卸载与清理(brew/pkg 两套))
      • [9.1 Homebrew 卸载](#9.1 Homebrew 卸载)
      • [9.2 官方 pkg 卸载(手动)](#9.2 官方 pkg 卸载(手动))
    • [10. 常见坑位速查](#10. 常见坑位速查)
      • [10.1 `freshclam` 报 "config file error / Example"](#10.1 freshclam 报 “config file error / Example”)
      • [10.2 `freshclam` 报权限错误](#10.2 freshclam 报权限错误)
      • [10.3 扫描很慢、风扇起飞](#10.3 扫描很慢、风扇起飞)
      • [10.4 误报怎么办](#10.4 误报怎么办)
    • 参考链接

🍃作者介绍:25届双非本科网络工程专业,阿里云专家博主,深耕 AI 原理 / 应用开发 / 产品设计。前几年深耕Java技术体系,现专注把 AI 能力落地到实际产品与业务场景。

🦅个人主页:@逐梦苍穹

✈ 您的一键三连,是我创作的最大动力🌹

ClamAV 在 macOS 上的离线查杀与定时扫描实战(含 clamd 加速)

很多人提到 macOS 的"杀毒",第一反应是:系统自带 XProtect、Gatekeeper,平时也不怎么中招,装 AV 没必要。话没错,但现实里我更常遇到的是另一类场景:

  • 你经常从网盘/群聊/邮件拿到压缩包、Office 文档、安装包(尤其是给同事/客户转文件时,mac 很容易变成"搬运工")。
  • 你有外接硬盘/移动盘,里面混着 Windows 软件、破解包、老资料。
  • 你做安全、运维、开发,偶尔需要对一个目录做"离线体检",出一份可追踪的扫描报告。

ClamAV 很适合干这件事:开源、命令行、可脚本化,核心目标就是"查杀/检测",不强调花里胡哨的 GUI。它更偏 Linux 生态,但 macOS 是类 Unix 系统,照样能把这套工具链跑得很顺。

先说清楚边界:ClamAV 在 macOS 上不是"实时防护全家桶",而是更像"离线扫描器 + 病毒库更新器"。把它当第二道门,效果最好。


目录

  • [1. 一张图看懂 ClamAV 组件](#1. 一张图看懂 ClamAV 组件)
  • [2. 安装路线怎么选:Homebrew vs 官方 pkg](#2. 安装路线怎么选:Homebrew vs 官方 pkg)
  • [3. 路径确认:你装到了哪里](#3. 路径确认:你装到了哪里)
  • [4. 初始化:更新病毒库 freshclam(别再 chmod 777)](#4. 初始化:更新病毒库 freshclam(别再 chmod 777))
  • [5. 扫描实战:我最常用的 6 条命令](#5. 扫描实战:我最常用的 6 条命令)
  • [6. 扫大目录更快:用 clamdscan(守护进程模式)](#6. 扫大目录更快:用 clamdscan(守护进程模式))
  • [7. 定时更新 + 定时扫描:launchd 配置模板](#7. 定时更新 + 定时扫描:launchd 配置模板)
  • [8. 隔离与留痕:把结果变成"可追踪"](#8. 隔离与留痕:把结果变成“可追踪”)
  • [9. 卸载与清理(brew/pkg 两套)](#9. 卸载与清理(brew/pkg 两套))
  • [10. 常见坑位速查](#10. 常见坑位速查)

1. 一张图看懂 ClamAV 组件

ClamAV 日常会接触到四个核心角色:

  • freshclam:更新病毒库(签名库)。
  • clamscan:直接扫描(每次运行都会加载病毒库,简单但可能慢)。
  • clamd:常驻守护进程(提前把病毒库加载进内存,等你来扫)。
  • clamdscan:通过 clamd 来扫描(大目录/大量小文件时更快)。

我自己的习惯是:

  • 临时扫个 Downloads:clamscan 足够了。
  • 要扫移动盘、解压目录、或者全盘(文件量上来):直接上 clamd + clamdscan

2. 安装路线怎么选:Homebrew vs 官方 pkg

两条路都能用,区别主要在"路径、权限、后期维护成本":

方式 适合人群 优点 缺点
Homebrew(推荐) 大多数开发者 升级/卸载干净,路径更统一 需要有 brew;某些公司环境 brew 受限
官方 pkg 不想折腾 brew、希望"装完就用" 直接安装到固定目录 后期清理麻烦点;权限更容易踩坑

提醒:macOS 里 Homebrew 路径跟 CPU 架构有关:Apple Silicon 通常在 /opt/homebrew,Intel 通常在 /usr/local


3. 路径确认:你装到了哪里

不管你怎么装,先把路径确认清楚,后面写脚本/launchd 才不会"跑不起来但又不报错"。

直接复制粘贴跑这段(我常用来快速定位):

bash 复制代码
find /usr/local /opt -name "clamscan" 2>/dev/null
find /usr/local /opt -name "freshclam" 2>/dev/null
find /usr/local /opt -name "clamd" 2>/dev/null

3.1 官方 pkg 常见路径

一般会在:

  • clamscan: /usr/local/clamav/bin/clamscan
  • freshclam: /usr/local/clamav/bin/freshclam
  • clamd: /usr/local/clamav/sbin/clamd
  • 配置目录:/usr/local/clamav/etc/

如果你希望在终端直接用命令(不写全路径),可以加 PATH(zsh):

bash 复制代码
echo 'export PATH="/usr/local/clamav/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
clamscan --version

3.2 Homebrew 常见路径

Apple Silicon 通常是:

  • /opt/homebrew/bin/clamscan
  • /opt/homebrew/bin/freshclam
  • /opt/homebrew/sbin/clamd
  • 配置示例一般在:/opt/homebrew/etc/clamav/

安装命令:

bash 复制代码
brew install clamav
clamscan --version

4. 初始化:更新病毒库 freshclam(别再 chmod 777)

ClamAV 靠"病毒库(签名库)"识别样本。你装完软件不更新库,等于拿着空枪巡逻。

freshclam 默认会拉取/维护几类数据库(常见叫法:maindailybytecode;实际文件可能是 .cvd/.cld):

  • main:基础签名库
  • daily:增量更新最频繁
  • bytecode:字节码规则(强烈建议别关)

4.1 官方 pkg:复制配置并启用

1)复制示例配置:

bash 复制代码
sudo cp /usr/local/clamav/etc/freshclam.conf.sample /usr/local/clamav/etc/freshclam.conf

2)把 Example 这一行注释掉(不注释的话 freshclam 会直接拒绝运行):

bash 复制代码
sudo sed -i '' 's/^Example/#Example/' /usr/local/clamav/etc/freshclam.conf

3)准备数据库目录和日志目录(给对权限就行,没必要 777):

bash 复制代码
sudo mkdir -p /usr/local/clamav/share/clamav
sudo mkdir -p /usr/local/clamav/var/log
sudo chmod 755 /usr/local/clamav/share/clamav /usr/local/clamav/var/log

4)更新病毒库:

bash 复制代码
sudo freshclam --show-progress

4.2 Homebrew:配置位置与更新

Homebrew 的思路类似:复制 sample、注释 Example、然后跑 freshclam

你可以先找一下 sample 在哪里(不同版本可能略有差异):

bash 复制代码
ls -la /opt/homebrew/etc/clamav 2>/dev/null || true
ls -la /usr/local/etc/clamav 2>/dev/null || true

然后按实际路径复制:

bash 复制代码
cp freshclam.conf.sample freshclam.conf
sed -i '' 's/^Example/#Example/' freshclam.conf
freshclam --show-progress

4.3 更新失败最常见的 3 个原因

1)权限不对DatabaseDirectory 指向的目录不可写。

解决思路:要么用 sudo freshclam,要么把目录 owner/权限修好(不建议一把梭 777)。

2)代理/公司网络拦截freshclam 本质是拉 CDN 资源,企业网经常卡住。

解决思路:走代理(HTTPProxyServer/HTTPProxyPort),或者配私有镜像(PrivateMirror)。

3)频率太高被限流 :你反复手动跑更新,可能触发服务端策略。

解决思路:别写"每分钟更新一次",正常一天 2~12 次足够。

4.4 如果你启用了 clamd:让更新后自动 reload

clamd 作为常驻进程,病毒库更新后需要"重新加载"。默认情况下它会按 SelfCheck 周期自检(比如 600 秒一次),但我更喜欢让更新更"可控"一点:在 freshclam.conf 里加一行 NotifyClamd,更新成功后会主动通知 clamd reload。

官方 pkg 示例(按你的实际路径改):

conf 复制代码
NotifyClamd /usr/local/clamav/etc/clamd.conf

如果你只是偶尔用 clamscan 扫一把,其实不用纠结这一项;只有你长期跑 clamd + clamdscan,它才更有价值。


5. 扫描实战:我最常用的 6 条命令

先给一张"命令速记图",后面每条我都会解释适用场景:

5.1 只扫 Downloads,只输出命中的文件(最常用)

bash 复制代码
clamscan -r -i ~/Downloads

5.2 扫描并生成日志(方便留档/复盘)

bash 复制代码
mkdir -p ~/clamav-logs
clamscan -r -i ~/Downloads -l ~/clamav-logs/downloads-$(date +%F).log

5.3 命中即隔离(推荐用 move,不推荐 remove)

bash 复制代码
mkdir -p ~/quarantine
clamscan -r -i --move=~/quarantine ~/Downloads

--remove 当然更"干脆",但我不建议一上来就删:误报、误删都不好收场。

5.4 排除一些"只会拖慢你"的目录

macOS 上最常见的"巨量文件 + 你并不关心"的目录基本都在 ~/Library 下面;开发者还会有 node_modules、构建产物等。

bash 复制代码
clamscan -r -i \
  --exclude-dir="node_modules" \
  --exclude-dir="\\.git" \
  --exclude-dir="$HOME/Library/Caches" \
  ~/projects

--exclude-dir 用的是正则;别写 ~/... 这种(引号里 ~ 不会展开),用 $HOME/... 或者写成更宽松的 Library/Caches 更稳。

5.5 只扫特定类型(比如只关心 Windows 可执行文件)

bash 复制代码
clamscan -r -i --include="\\.(exe|dll|msi|bat|js|vbs)$" ~/Downloads

5.6 扫外接盘(移动盘/共享盘)

先确认挂载点(通常在 /Volumes):

bash 复制代码
ls -la /Volumes

然后扫:

bash 复制代码
clamscan -r -i /Volumes/你的盘名

5.7 自测链路:用 EICAR 测试文件确认"能抓到"

如果你刚装完,想快速确认"病毒库更新正常 + 扫描链路正常",用 EICAR(标准无害测试文件)最省事。

bash 复制代码
mkdir -p ~/clamav-test && cd ~/clamav-test
curl -L -o eicar.com.txt https://secure.eicar.org/eicar.com.txt
clamscan -i eicar.com.txt
rm -f eicar.com.txt

正常情况下会看到类似 Eicar-Test-Signature FOUND 的命中提示。这个文件只是测试标记,不是实际病毒,用完删掉即可。


6. 扫大目录更快:用 clamdscan(守护进程模式)

如果你扫的是"几万个小文件"的目录,clamscan 每次启动都要加载数据库,体验会很糟;这时 clamd 的优势就出来了:常驻内存,clamdscan 直接发请求过去扫。

6.1 最小可用的 clamd.conf(思路)

不同安装方式的 clamd.conf.sample 路径不同,但原则一致:

  • 打开 LocalSocket(推荐走 Unix Socket)
  • DatabaseDirectory 指到你的病毒库目录(与 freshclam 保持一致)
  • 设好 LogFilePidFile,方便排查

示例(请按你的实际路径改):

conf 复制代码
# 把 Example 注释掉,否则 clamd 不会启动
# Example

LocalSocket /usr/local/clamav/var/run/clamd.sock
FixStaleSocket yes

DatabaseDirectory /usr/local/clamav/share/clamav

LogFile /usr/local/clamav/var/log/clamd.log
PidFile /usr/local/clamav/var/run/clamd.pid

SelfCheck 600
MaxThreads 10

6.2 启动 clamd 并用 clamdscan 扫描

手动启动(官方 pkg 示例):

bash 复制代码
sudo mkdir -p /usr/local/clamav/var/run
sudo /usr/local/clamav/sbin/clamd -c /usr/local/clamav/etc/clamd.conf

clamdscan 扫描(多线程扫目录时很舒服):

bash 复制代码
clamdscan --multiscan -i ~/Downloads

如果 clamd 以 root 运行、你以普通用户跑 clamdscan,可能遇到权限问题;这种情况下优先试试 --fdpass(仅 Unix Socket 可用):

bash 复制代码
clamdscan --multiscan --fdpass -i ~/Downloads

7. 定时更新 + 定时扫描:launchd 配置模板

把 ClamAV 变成"长期可用工具",关键就两件事:

1)病毒库按计划更新

2)重要目录按计划扫描

下面给一个我常用的结构(思路清晰,改路径就能用):

  • 一个脚本:负责扫描、日志、隔离
  • 两个 LaunchDaemon(或 LaunchAgent):
    • freshclam:每天更新
    • scan:每天/每周扫描

7.1 扫描脚本模板(建议放在固定路径)

建议如果脚本看不懂的同学,让AI先解释一遍,看看是否适合你的具体情况

bash 复制代码
#!/usr/bin/env bash
set -euo pipefail

CLAMSCAN=""
for p in \
  /usr/local/clamav/bin/clamscan \
  /opt/homebrew/bin/clamscan \
  /usr/local/bin/clamscan
do
  if [[ -x "$p" ]]; then
    CLAMSCAN="$p"
    break
  fi
done
if [[ -z "$CLAMSCAN" ]]; then
  echo "[!] clamscan not found. Please check your installation path." >&2
  exit 2
fi

TARGET="${1:-$HOME/Downloads}"
LOG_DIR="$HOME/clamav-logs"
QUARANTINE_DIR="$HOME/quarantine"

mkdir -p "$LOG_DIR" "$QUARANTINE_DIR"

"$CLAMSCAN" -r -i \
  --move="$QUARANTINE_DIR" \
  --exclude-dir="\\.git" \
  --exclude-dir="node_modules" \
  "$TARGET" \
  -l "$LOG_DIR/scan-$(date +%F).log"

launchd 不会读你的 shell 配置,脚本里一定要写绝对路径/usr/local/clamav/bin/clamscan 这种)。

把脚本保存为 /usr/local/bin/clamav-scan.sh 并赋可执行权限:

bash 复制代码
sudo tee /usr/local/bin/clamav-scan.sh >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

CLAMSCAN=""
for p in \
  /usr/local/clamav/bin/clamscan \
  /opt/homebrew/bin/clamscan \
  /usr/local/bin/clamscan
do
  if [[ -x "$p" ]]; then
    CLAMSCAN="$p"
    break
  fi
done
if [[ -z "$CLAMSCAN" ]]; then
  echo "[!] clamscan not found. Please check your installation path." >&2
  exit 2
fi

TARGET="${1:-$HOME/Downloads}"
LOG_DIR="$HOME/clamav-logs"
QUARANTINE_DIR="$HOME/quarantine"

mkdir -p "$LOG_DIR" "$QUARANTINE_DIR"

"$CLAMSCAN" -r -i \
  --move="$QUARANTINE_DIR" \
  --exclude-dir="\\.git" \
  --exclude-dir="node_modules" \
  "$TARGET" \
  -l "$LOG_DIR/scan-$(date +%F).log"
EOF
sudo chmod +x /usr/local/bin/clamav-scan.sh

7.2 LaunchDaemon:每天更新病毒库(示例)

/Library/LaunchDaemons/com.example.clamav.freshclam.plist

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.example.clamav.freshclam</string>

    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/clamav/bin/freshclam</string>
      <string>--quiet</string>
    </array>

    <key>StartCalendarInterval</key>
    <dict>
      <key>Hour</key><integer>3</integer>
      <key>Minute</key><integer>30</integer>
    </dict>

    <key>RunAtLoad</key><true/>
    <key>StandardOutPath</key><string>/usr/local/clamav/var/log/freshclam.out</string>
    <key>StandardErrorPath</key><string>/usr/local/clamav/var/log/freshclam.err</string>
  </dict>
</plist>

加载(新系统建议用 bootstrap):

bash 复制代码
sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.clamav.freshclam.plist
sudo launchctl kickstart -k system/com.example.clamav.freshclam

7.3 定时扫描(示例:每天 04:00 扫 Downloads)

/Library/LaunchDaemons/com.example.clamav.scan.plist

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.example.clamav.scan</string>

    <key>ProgramArguments</key>
    <array>
      <string>/bin/bash</string>
      <string>/usr/local/bin/clamav-scan.sh</string>
      <string>/Users/你的用户名/Downloads</string>
    </array>

    <key>UserName</key>
    <string>你的用户名</string>
    <key>EnvironmentVariables</key>
    <dict>
      <key>HOME</key><string>/Users/你的用户名</string>
    </dict>

    <key>StartCalendarInterval</key>
    <dict>
      <key>Hour</key><integer>4</integer>
      <key>Minute</key><integer>0</integer>
    </dict>

    <key>RunAtLoad</key><true/>
    <key>StandardOutPath</key><string>/tmp/clamav-scan.out</string>
    <key>StandardErrorPath</key><string>/tmp/clamav-scan.err</string>
  </dict>
</plist>

你也可以用 LaunchAgent 跑在当前用户下(放到 ~/Library/LaunchAgents/),好处是天然就是当前用户环境;缺点是用户不登录时任务不跑。

如果你只是想"每天扫一下 Downloads",LaunchAgent 往往更省心;如果你想"机器级别固定跑",就用上面这种 LaunchDaemon + UserName/HOME 的写法。


8. 隔离与留痕:把结果变成"可追踪"

我更推荐的闭环是:

1)扫描时用 --move 隔离

2)扫描时写日志(-l

3)隔离目录只读保存,后续再人工确认/删除

如果你要给同事/客户一个"可交付"的结果,日志里建议至少包含:

  • 扫描时间、扫描目标目录
  • ClamAV 版本与病毒库版本(可以在脚本里加 clamscan --versionfreshclam --version 输出)
  • 命中列表(文件路径 + 病毒名)

9. 卸载与清理(brew/pkg 两套)

9.1 Homebrew 卸载

bash 复制代码
brew uninstall clamav
brew cleanup

然后按需清理配置/数据库目录(以 Apple Silicon 为例):

bash 复制代码
rm -rf /opt/homebrew/etc/clamav
rm -rf /opt/homebrew/var/lib/clamav

9.2 官方 pkg 卸载(手动)

1)找到 pkg 记录:

bash 复制代码
pkgutil --pkgs | grep -i clam

2)如果你配置过 launchd,先卸载任务:

bash 复制代码
sudo launchctl bootout system /Library/LaunchDaemons/com.example.clamav.freshclam.plist 2>/dev/null || true
sudo launchctl bootout system /Library/LaunchDaemons/com.example.clamav.scan.plist 2>/dev/null || true
sudo rm -f /Library/LaunchDaemons/com.example.clamav.freshclam.plist
sudo rm -f /Library/LaunchDaemons/com.example.clamav.scan.plist

3)删除主程序目录:

bash 复制代码
sudo rm -rf /usr/local/clamav

4)清理 PATH(如果你加过):

bash 复制代码
sed -i '' '/\\/usr\\/local\\/clamav\\/bin/d' ~/.zshrc 2>/dev/null || true
source ~/.zshrc

5)忘记 pkg 记录(以 Cisco 的包名为例,按你实际查到的来):

bash 复制代码
sudo pkgutil --forget com.cisco.ClamAV.programs 2>/dev/null || true
sudo pkgutil --forget com.cisco.ClamAV.libraries 2>/dev/null || true
sudo pkgutil --forget com.cisco.ClamAV.documentation 2>/dev/null || true

验证:

bash 复制代码
command -v clamscan || true
command -v freshclam || true
ls -la /usr/local/clamav 2>/dev/null || true
pkgutil --pkgs | grep -i clam || true

10. 常见坑位速查

10.1 freshclam 报 "config file error / Example"

九成是 freshclam.confExample 没注释。

10.2 freshclam 报权限错误

DatabaseDirectory 指向哪里,目录必须可写;优先用正确权限/owner,不建议全局 777。

10.3 扫描很慢、风扇起飞

先把目标目录缩小:只扫 Downloads/外接盘/解压目录;再配 --exclude-dir 排除缓存、构建产物。

还慢就上 clamd + clamdscan --multiscan

10.4 误报怎么办

先别 --remove,用 --move 隔离,保留现场。

确认是误报后,再用 --exclude/--exclude-dir 把目录或文件类型排除掉,或者只扫你关心的后缀(--include)。


参考链接

  • ClamAV GitHub:https://github.com/Cisco-Talos/clamav
  • clamscan 参数(man page):https://github.com/Cisco-Talos/clamav/blob/main/docs/man/clamscan.1.in
  • freshclam / freshclam.conf:https://github.com/Cisco-Talos/clamav/blob/main/docs/man/freshclam.1.inhttps://github.com/Cisco-Talos/clamav/blob/main/docs/man/freshclam.conf.5.in
  • clamd / clamd.conf / clamdscan:https://github.com/Cisco-Talos/clamav/blob/main/docs/man/clamd.8.inhttps://github.com/Cisco-Talos/clamav/blob/main/docs/man/clamd.conf.5.inhttps://github.com/Cisco-Talos/clamav/blob/main/docs/man/clamdscan.1.in
  • EICAR 测试文件:https://www.eicar.org/download-anti-malware-testfile/
相关推荐
说私域4 小时前
基于开源AI智能名片链动2+1模式多商户商城小程序的销售工作性质与能力要求研究
人工智能·小程序
roman_日积跬步-终至千里4 小时前
【计算机视觉(15)】语义理解-深度学习工程_CPU_GPU_自动求导_框架
人工智能·深度学习·计算机视觉
阿正的梦工坊4 小时前
Search-R1:用强化学习训练LLM推理并利用搜索引擎
人工智能·机器学习·搜索引擎·llm
焦耳加热4 小时前
中国石油大学/天津大学《CEJ》突破:0.5秒极速“烧”制合金膜,实现CO₂到甲酸近100%高效转化
人工智能·科技·能源·制造·材料工程
华纳云IDC服务商4 小时前
服务器被DDOS跟CC攻击了怎么处理,如何抵御攻击?
服务器·网络·安全
ERROR:994 小时前
野路子:把海量文档一次性转换成多个PPT
开发语言·人工智能·c#
图导物联4 小时前
厂区地图导航系统:基于北斗/GPS+蓝牙 iBeacon 的开发方案,破解 “定位不准、调度混乱、安全薄弱” 三大痛点
大数据·人工智能·物联网
学网安的肆伍4 小时前
【040-安全开发篇】JavaEE应用&SpringBoot框架&JWT身份鉴权&打包部署JAR&WAR
spring boot·安全·java-ee
PPIO派欧云4 小时前
PPIO上线Prompt Cache:让模型调用更快、更省、更稳
大数据·人工智能·prompt