当前位置: 首页 > news >正文

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

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

一、Linux Debian安装ClamAV

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

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

    sudo apt update
    
  2. 安装ClamAV
    使用apt安装ClamAV:

    sudo apt install clamav clamav-daemon
    
  3. 更新病毒数据库
    安装完成后,更新病毒数据库:

    sudo freshclam
    

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

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

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

    sudo systemctl start clamav-daemon
    

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

    sudo systemctl enable clamav-daemon
    
  6. 测试ClamAV
    测试ClamAV是否正常工作,你可以扫描一个文件:

    clamscan --infected --remove --recursive /path/to/directory
    

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

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

    sudo crontab -e
    

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

    0 22 * * * freshclam
    

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

二、ClamAV病毒扫描方法

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

  1. 扫描单个文件

    clamscan file.txt
    

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

  2. 扫描目录

    clamscan -r /path/to/directory
    

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

  3. 扫描结果

    • OK:文件没有被检测到病毒。
    • FOUND:文件被检测到病毒。
  4. 移除病毒
    如果你想要ClamAV在发现病毒时自动删除它们,可以使用--remove选项:

    clamscan --remove -r /path/to/directory
    
  5. 静默模式
    如果你不想看到每个文件的扫描结果,可以使用--quiet选项:

    clamscan --quiet -r /path/to/directory
    
  6. 扫描结果输出到文件
    你可以将扫描结果输出到一个文件中,以便后续查看:

    clamscan  -r /path/to/directory > scan_results.txt
    
  7. 使用ClamAV守护进程
    如果你安装了clamav-daemon,可以使用clamdscan命令来利用守护进程进行扫描,这通常比clamscan更快:

    clamdscan file.txt
    

    或者扫描目录:

    clamdscan -r /path/to/directory
    

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

cat scan_results.txt  | grep "FOUND"

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

sudo freshclam

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

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

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

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

三、可以编写一个shell脚本

clamav_scan.sh

#!/bin/bash
# 脚本功能:clamav扫描病毒,将威胁文件清除,并生成扫描日志文件#---------------------------------------------------------------------------------
#函数功能:主函数
#---------------------------------------------------------------------------------
function main(){# 判断$1参数是否为空,不为空设置input_scan_pathif [ -z $1 ];then# echo "第一个参数为空"# 获取当前脚本名称local script_name=$(basename "$0")echo "请在运行脚本'${script_name}'名称后面,输入参数:'扫描路径'"exitelse# echo "第一个参数不为空,值为:$1"local input_scan_path=$1fiif [ -d "$input_scan_path" ]; thenecho "输入的扫描路径'$input_scan_path'是一个目录"echo "clamav开始扫描病毒:"# 将一个空字符串写入scan_results.txt文件中。如果文件不存在,将会创建一个空的文件echo "创建存储扫描结果文件'scan_results.txt'"echo "" > scan_results.txtecho "clamav扫描病毒中......"# clamscan开始扫描查杀病毒sudo clamscan --log=scan_results.txt --infected --remove --recursive "$input_scan_path"echo "clamav结束扫描病毒。请查看并分析创建扫描结果文件'scan_results.txt'"elif [ -f "$input_scan_path" ]; thenecho "输入的扫描路径'$input_scan_path'是一个文件"echo "clamav开始扫描病毒:"# 将一个空字符串写入scan_results.txt文件中。如果文件不存在,将会创建一个空的文件echo "创建存储扫描结果文件'scan_results.txt'"echo "" > scan_results.txtecho "clamav扫描病毒中......"# clamscan开始扫描查杀病毒sudo clamscan --log=scan_results.txt --infected --remove "$input_scan_path"echo "clamav结束扫描病毒。请查看并分析创建扫描结果文件'scan_results.txt'"elseecho "输入的扫描路径'$input_scan_path'既不是目录也不是文件,请核实输入的扫描路径。"exitfi    
}# ---------------执行主函数-------------------
main $1

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

chmod +x clamav_scan.sh

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

./clamav_scan.sh "扫描路径"

测试效果:

在这里插入图片描述


相关文章:

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

ClamAV是一个开源的跨平台病毒扫描引擎,用于检测恶意软件、病毒、木马等安全威胁。 一、Linux Debian安装ClamAV 在Linux Debian系统上安装ClamAV,你可以按照以下步骤进行: 更新软件包列表: 打开终端并更新你的软件包列表&#…...

Spring创建异步线程,使用@Async注解时不指定value可以吗?

在Spring中使用Async注解时,不指定value是可以的。如果没有指定value(即线程池的名称),Spring会默认使用名称为taskExecutor的线程池。如果没有定义taskExecutor线程池,则Spring会自动创建一个默认的线程池。 默认行为…...

二分和离散化

为什么把二分和离散化放一起:因为离散化其实是一种二分整数的过程。 二分 相信大家都接触过二分查找(折半查找),这就是二分的思想。 二分通过每次舍弃一半并不存在答案的区间,进而快速锁定要求的答案(二…...

深度学习实战102-基于深度学习的网络入侵检测系统,利用各种AI模型和pytorch框架实现网络入侵检测

大家好,我是微学AI,今天给大家介绍一下深度学习实战102-基于深度学习的网络入侵检测系统,利用各种AI模型和pytorch框架实现网络入侵检测。近年来,网络安全威胁日益严峻,传统基于规则的方法难以应对复杂多变的入侵手段。 深度学习技术凭借其强大的特征学习能力和自适应性,…...

vue3使用element-plus,解决 el-table 多选框,选中后翻页再回来选中失效问题

问题&#xff1a;勾选的数据分页再回来回消失 1.在el-table中加 :row-key"getRowKey" const getRowKey (row) > { return row.id; // id必须是唯一的 }; 2.给type为selection的el-table-column添加上reserve-selection属性 <el-tableref"multipleTab…...

网络的类型

BMA---广播型多路访问--在一个网段内可以放置多个物理节点,同时该范围内可以实施广播洪泛机制 【1】以太网-->共享型 属性典型的 BMA类型;以太网技术的核心为频分一在同一物理介质上&#xff0c;使用多个相互不干涉的频率电波来共同传输数据&#xff0c;实现带宽的不断提升…...

实现类似gpt 打字效果

1. css的动画&#xff08;animation) css中实现动画有两种方式&#xff1a;transition过渡动画、 animation自定义动画。 具体的可以看MDN链接&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/CSS/animation 使用keyframes自定义关键帧动画并未其命名使用自定义动…...

项目需求分析流程

项目需求分析是软件开发或任何工程项目中至关重要的第一步。它帮助确保团队理解客户的需求&#xff0c;并为后续的设计、开发和测试工作提供指导。以下是一个详细的需求分析流程&#xff1a; 一、确定项目目标 与利益相关者沟通&#xff1a;包括但不限于客户、最终用户、销售…...

idea连接SQL Server数据库_idea连接sqlserver数据库

4.设置密码&#xff08;这一步可以在安装数据库时就可以完成&#xff09;&#xff0c;如果觉得用户名有问题&#xff0c;也可以修改用户名 5.查看SQL Server端口号&#xff08;默认端口&#xff1a;1433&#xff09;&#xff0c;选择SQL Server2019配置管理器 6.打开SQL Server…...

Scala_【2】变量和数据类型

第二章 注释标识符的命名规范命名规则关键字 变量字符串输出数据类型关系变量和数据类型整数类型&#xff08;Byte、Short、Int、Long&#xff09;浮点类型&#xff08;Float、Double&#xff09;字符类型&#xff08;Char&#xff09;布尔类型&#xff08;Boolean&#xff09;…...

u3d中JSON数据处理

一.认识JSON 1.1 Json概述 JSON&#xff08;JavaScript Object Notation&#xff0c;JavaScript对象表示法&#xff09;JSON和XML是比较类似的技术&#xff0c;都是用来存储文本信息数据的&#xff1b;相对而言&#xff0c;JSON比XML体积更小巧&#xff0c;但是易读性不如XML…...

idea 安装插件(在线安装、离线安装)

目录 在线安装 离线安装 在线安装 1、打开IntelliJ IDEA 2024.x软件&#xff0c; 点击file-Settings 2、点击搜索框&#xff0c;输入plugins&#xff0c;找到plugins列&#xff0c;输入xxx软件--点击install 安装 3、重启idea 离线安装 1、在官网上下载插件包 &#xff08;1&…...

springboot maven 构建 建议使用 --release 21 而不是 -source 21 -target 21,因为它会自动设置系统模块的位置

使用 --release 选项代替 -source 和 -target 是一种更安全、更兼容的方式,特别是在构建使用较新版本 JDK 的项目时。以下是详细解释和建议: 1. 为什么推荐使用 --release 问题点: 使用 -source 和 -target 标志时,仅设置了代码的语言级别和字节码目标版本,但编译器仍可…...

离散数学 复习 详细(子群,元素的周期,循环群,合同)

子群: 定义: 设(G,)是一个群&#xff0c;H属于G,如果(H,)仍是一个群&#xff0c;则(H,)叫做(G,)的子群。如果G的一个子群H不等于G&#xff0c;即H是G的真子集&#xff0c;则(H,)叫做(G,)的真子群 平凡子群和非平凡子群: 任意群都有两个子集一定是群 (平凡子群):{e} {G},其他…...

Java后端常见问题 (一)jar:unknown was not found in alimaven

1.安装配置maven时未将原来的 mirror 标签注释掉 解决方法&#xff1a;找到 mirrors 标签&#xff0c;先将原来配置的http://0.0.0.0给注释了,这个是高版本的maven增加的一个保护机制&#xff0c;如果不注释&#xff0c;那么使用的时候就下载不了jar包&#xff0c;如下图所示。…...

overleaf中文生僻字显示不正确,显示双线F

我是不想换全文字体的&#xff0c;只是一个生僻字显示不出来&#xff0c;就想要像word一样&#xff0c;把这个生僻字用包含这个生僻字的字体来显示就好了。 解决步骤&#xff1a; 1、使用如下宏包&#xff1a; \usepackage{xeCJK} %声明宏包&#xff0c;主要用于支持在XeTeX…...

C语言中的贪心算法

贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前最优解的算法&#xff0c;希望通过局部最优解的选择&#xff0c;最终得到全局最优解。它常用于解决最优化问题&#xff0c;如最小生成树、最短路径等。本文将从理论到实践&#xff0c;逐步引导…...

虚幻引擎结构之UWorld

Uworld -> Ulevel ->Actors -> AActor 在虚幻引擎中&#xff0c;UWorld 类扮演着至关重要的角色&#xff0c;它就像是游戏世界的总指挥。作为游戏世界的核心容器&#xff0c;UWorld 包含了构成游戏体验的众多元素&#xff0c;从游戏实体到关卡设计&#xff0c;再到物…...

太通透了,Android 流程分析 蓝牙enable流程(stack/hidl)

零. 前言 由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C++等,加上网络上其实没有一个完整的介绍Bluedroid系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员…...

2.微服务灰度发布落地实践(agent实现)

前言 据上一篇&#xff0c;设计方案的分析&#xff0c;综合考虑&#xff0c;最终决定,客户端采用agent方案实现&#xff0c;具本原因不再赘述&#xff0c; 感觉兴趣的小伙伴可以回头了解一下.该篇主要讲java agent的实现,灰度agent客户端的基础框架实现 java agent的介绍 ja…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...