Linux Debian安装ClamAV和命令行扫描病毒方法,以及用Linux Shell编写了一个批量扫描病毒的脚本

ClamAV是一个开源的跨平台病毒扫描引擎,用于检测恶意软件、病毒、木马等安全威胁。

一、Linux Debian安装ClamAV

在Linux Debian系统上安装ClamAV,你可以按照以下步骤进行:

  1. 更新软件包列表

    打开终端并更新你的软件包列表:

    bash 复制代码
    sudo apt update
  2. 安装ClamAV

    使用apt安装ClamAV:

    bash 复制代码
    sudo apt install clamav clamav-daemon
  3. 更新病毒数据库

    安装完成后,更新病毒数据库:

    bash 复制代码
    sudo freshclam

    这个命令会下载最新的病毒数据库。你可能需要等待几分钟,直到数据库完全更新。

  4. 配置ClamAV

    根据你的需求配置ClamAV。通常,你可能需要编辑/etc/clamav/clamd.conf/etc/clamav/freshclam.conf文件。

  5. 启动ClamAV服务

    ClamAV 守护进程(clamd)可以提供实时扫描功能,启动ClamAV守护进程:

    bash 复制代码
    sudo systemctl start clamav-daemon

    如果你想要ClamAV在系统启动时自动运行,可以使用以下命令来启用它:

    bash 复制代码
    sudo systemctl enable clamav-daemon
  6. 测试ClamAV

    测试ClamAV是否正常工作,你可以扫描一个文件:

    bash 复制代码
    clamscan --infected --remove --recursive /path/to/directory

    这个命令会递归扫描指定目录,移除检测到的病毒,并显示被感染的文件。

  7. 定期更新病毒数据库

    你可以设置一个cron作业来定期更新病毒数据库:

    bash 复制代码
    sudo crontab -e

    然后添加以下行来每天晚上22:00自动更新病毒数据库(需要root账户,普通账户sudo freshclam需要输入密码):

    复制代码
    0 22 * * * freshclam

请注意,这些步骤可能会因为Debian的不同版本而略有不同。如果你遇到任何问题,可以查看ClamAV的官方文档或者Debian的社区论坛获取帮助。

二、ClamAV病毒扫描方法

以下是如何使用ClamAV进行病毒扫描的一些基本命令:

  1. 扫描单个文件

    bash 复制代码
    clamscan file.txt

    这将扫描名为file.txt的文件,并显示是否发现病毒。

  2. 扫描目录

    bash 复制代码
    clamscan -r /path/to/directory

    这将递归扫描指定目录及其子目录中的所有文件。

  3. 扫描结果

    • OK:文件没有被检测到病毒。
    • FOUND:文件被检测到病毒。
  4. 移除病毒

    如果你想要ClamAV在发现病毒时自动删除它们,可以使用--remove选项:

    bash 复制代码
    clamscan --remove -r /path/to/directory
  5. 静默模式

    如果你不想看到每个文件的扫描结果,可以使用--quiet选项:

    bash 复制代码
    clamscan --quiet -r /path/to/directory
  6. 扫描结果输出到文件

    你可以将扫描结果输出到一个文件中,以便后续查看:

    bash 复制代码
    clamscan  -r /path/to/directory > scan_results.txt
  7. 使用ClamAV守护进程

    如果你安装了clamav-daemon,可以使用clamdscan命令来利用守护进程进行扫描,这通常比clamscan更快:

    bash 复制代码
    clamdscan file.txt

    或者扫描目录:

    bash 复制代码
    clamdscan -r /path/to/directory

8.查杀病毒完毕后,查找病毒文件

bash 复制代码
cat scan_results.txt  | grep "FOUND"

9.更新病毒数据库

在扫描之前,确保你的病毒数据库是最新的:

bash 复制代码
sudo freshclam

10.设置定期扫描

你可以设置cron作业来定期自动扫描系统(需要root账户,普通账户sudo clamscan需要输入密码):

bash 复制代码
(crontab -l 2>/dev/null; echo "0 2 * * * clamscan -r /path/to/directory") | crontab -

这个命令会在每天凌晨2点扫描指定目录。

请记得在执行这些命令之前,确保ClamAV已经安装在你的系统上,并且病毒数据库是最新的。如果你需要帮助或者想要了解更多高级选项,可以查看ClamAV的官方文档或者使用man clamscanman clamdscan命令来获取手册页。

三、可以编写一个shell脚本

clamav_scan.sh

bash 复制代码
#!/bin/bash
# 脚本功能:clamav扫描病毒,将威胁文件清除,并生成扫描日志文件

#---------------------------------------------------------------------------------
#函数功能:主函数
#---------------------------------------------------------------------------------
function main(){
    # 判断$1参数是否为空,不为空设置input_scan_path
    if [ -z $1 ];then
        # echo "第一个参数为空"
        # 获取当前脚本名称
        local script_name=$(basename "$0")
        echo "请在运行脚本'${script_name}'名称后面,输入参数:'扫描路径'"
        exit
    else
        # echo "第一个参数不为空,值为:$1"
        local input_scan_path=$1
    fi

    if [ -d "$input_scan_path" ]; then
        echo "输入的扫描路径'$input_scan_path'是一个目录"
        echo "clamav开始扫描病毒:"
        # 将一个空字符串写入scan_results.txt文件中。如果文件不存在,将会创建一个空的文件
        echo "创建存储扫描结果文件'scan_results.txt'"
        echo "" > scan_results.txt
        echo "clamav扫描病毒中......"
        # clamscan开始扫描查杀病毒
        sudo clamscan --log=scan_results.txt --infected --remove --recursive "$input_scan_path"
        echo "clamav结束扫描病毒。请查看并分析创建扫描结果文件'scan_results.txt'"
    elif [ -f "$input_scan_path" ]; then
        echo "输入的扫描路径'$input_scan_path'是一个文件"
        echo "clamav开始扫描病毒:"
        # 将一个空字符串写入scan_results.txt文件中。如果文件不存在,将会创建一个空的文件
        echo "创建存储扫描结果文件'scan_results.txt'"
        echo "" > scan_results.txt
        echo "clamav扫描病毒中......"
        # clamscan开始扫描查杀病毒
        sudo clamscan --log=scan_results.txt --infected --remove "$input_scan_path"
        echo "clamav结束扫描病毒。请查看并分析创建扫描结果文件'scan_results.txt'"
    else
        echo "输入的扫描路径'$input_scan_path'既不是目录也不是文件,请核实输入的扫描路径。"
        exit
    fi    
}


# ---------------执行主函数-------------------
main $1

1.赋予shell脚本文件执行权限

bash 复制代码
chmod +x clamav_scan.sh

2.运行shell脚本,请在运行脚本名称后面,输入一个扫描路径参数:

bash 复制代码
./clamav_scan.sh "扫描路径"

测试效果:


相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式