基于Docker部署的ClamAV常用命令速查表

奥黛丽·逐爱者
2026-07-30 / 0 评论 / 4 阅读 / 正在检测是否收录...

在线或离线安装

# 使用最新稳定版 1.5.3
docker pull clamav/clamav:1.5.3

# 或使用 LTS 版 1.4.5(更稳定、支持周期更长)
docker pull clamav/clamav:1.4.5

# 1. 拉取镜像并保存为 tar 包
docker pull clamav/clamav:latest
docker save -o clamav-docker.tar clamav/clamav:latest

# 2. 下载病毒库
mkdir -p /data/vdb/clamav-offline/db
cd /data/vdb/clamav-offline/db
wget https://database.clamav.net/main.cvd
wget https://database.clamav.net/daily.cvd
wget https://database.clamav.net/bytecode.cvd

基础部署命令

# 1. 离线模式(使用本地病毒库)- 你当前的使用方式
docker run --rm \
  -v /data/vdb/clamav-offline/db:/var/lib/clamav \
  -v /data:/scan:ro \ #可能要去除只读
  clamav/clamav:1.4.5 \
  clamscan -r /scan

# 2. 在线模式(自动更新病毒库)- 需要联网
docker run --rm \
  -v /data:/scan:ro \
  clamav/clamav:1.4.5 \
  clamscan -r /scan

🔍 常用扫描命令

命令    说明
clamscan -r /scan    递归扫描目录(最常用)
clamscan -r /scan --quiet    静默模式,只输出感染文件
clamscan -r /scan --verbose    显示详细扫描信息
clamscan -r /scan --remove    扫描并自动删除感染文件(⚠️谨慎)
clamscan -r /scan --move=/quarantine    将感染文件移动到隔离目录
clamscan -r /scan --exclude-dir=/scan/docker    跳过指定目录
clamscan -r /scan --exclude=.*\.log$    跳过匹配正则的文件
clamscan -r /scan --max-filesize=50M    限制单文件扫描大小
clamscan -r /scan --max-scansize=200M    限制扫描总数据量
clamscan -r /scan -l /scan/scan.log    将结果保存到日志文件

⚙️ 实用场景组合

# 1. 后台扫描 + 日志记录(推荐)
nohup docker run --rm \
  -v /data/vdb/clamav-offline/db:/var/lib/clamav \
  -v /data:/scan:ro \
  -v /var/log:/log \
  clamav/clamav:1.4.5 \
  clamscan -r /scan -l /log/clamav_scan_$(date +%Y%m%d).log \
  > /dev/null 2>&1 &

# 2. 扫描并排除Docker目录(加快速度)
docker run --rm \
  -v /data/vdb/clamav-offline/db:/var/lib/clamav \
  -v /data:/scan:ro \
  clamav/clamav:1.4.5 \
  clamscan -r /scan --exclude-dir=/scan/docker --exclude-dir=/scan/containerd

# 3. 扫描但不扫描压缩包内部
docker run --rm \
  -v /data/vdb/clamav-offline/db:/var/lib/clamav \
  -v /data:/scan:ro \
  clamav/clamav:1.4.5 \
  clamscan -r /scan --no-archive

# 4. 多线程扫描(加快速度)
docker run --rm \
  -v /data/vdb/clamav-offline/db:/var/lib/clamav \
  -v /data:/scan:ro \
  clamav/clamav:1.4.5 \
  clamscan -r /scan --threads=4

📊 查看扫描结果

# 1. 查看当前扫描进度(实时)
tail -f /var/log/clamav_scan_*.log

# 2. 统计已扫描文件数
grep -c "OK\|FOUND" /var/log/clamav_scan_*.log

# 3. 查看感染文件
grep "FOUND" /var/log/clamav_scan_*.log

🛠️ 常用管理命令

# 1. 检查病毒库版本
docker run --rm clamav/clamav:1.4.5 clamscan --version

# 2. 检查病毒库信息
docker run --rm clamav/clamav:1.4.5 freshclam --version

# 3. 更新病毒库(在线模式)
docker run --rm clamav/clamav:1.4.5 freshclam

其他有用的镜像

# 1. 使用Alpine基础镜像(体积更小)
docker run --rm clamav/clamav:1.4.5-alpine clamscan -r /scan

# 2. 长期运行的守护进程模式(用于实时防护)
docker run -d \
  --name clamav \
  -v /data/vdb/clamav-offline/db:/var/lib/clamav \
  -p 3310:3310 \
  clamav/clamav:1.4.5

💡 实用技巧
解决权限问题(你之前遇到的chown错误):

# 方案A:不加:ro只读限制
-v /data/vdb/clamav-offline/db:/var/lib/clamav

# 方案B:设置环境变量
-e CLAMAV_NO_CHOWN=true
扫描性能优化:

排除不必要的大目录(如/scan/docker)

使用--threads=4多线程

限制单文件大小--max-filesize=100M

自动化扫描脚本:

#!/bin/bash
# scan.sh - 每周日半夜2点执行
DATE=$(date +%Y%m%d_%H%M)
docker run --rm \
  -v /data/vdb/clamav-offline/db:/var/lib/clamav \
  -v /data:/scan:ro \
  -v /var/log:/log \
  clamav/clamav:1.4.5 \
  clamscan -r /scan -l /log/clamav_${DATE}.log
0

评论 (0)

取消