Linux Debian安装ClamAV和命令行扫描病毒方法,以及用Linux Shell编写了一个批量扫描病毒的脚本
ClamAV是一个开源的跨平台病毒扫描引擎,用于检测恶意软件、病毒、木马等安全威胁。
一、Linux Debian安装ClamAV
在Linux Debian系统上安装ClamAV,你可以按照以下步骤进行:
-
更新软件包列表:
打开终端并更新你的软件包列表:sudo apt update -
安装ClamAV:
使用apt安装ClamAV:sudo apt install clamav clamav-daemon -
更新病毒数据库:
安装完成后,更新病毒数据库:sudo freshclam这个命令会下载最新的病毒数据库。你可能需要等待几分钟,直到数据库完全更新。
-
配置ClamAV:
根据你的需求配置ClamAV。通常,你可能需要编辑/etc/clamav/clamd.conf和/etc/clamav/freshclam.conf文件。 -
启动ClamAV服务:
ClamAV 守护进程(clamd)可以提供实时扫描功能,启动ClamAV守护进程:sudo systemctl start clamav-daemon如果你想要ClamAV在系统启动时自动运行,可以使用以下命令来启用它:
sudo systemctl enable clamav-daemon -
测试ClamAV:
测试ClamAV是否正常工作,你可以扫描一个文件:clamscan --infected --remove --recursive /path/to/directory这个命令会递归扫描指定目录,移除检测到的病毒,并显示被感染的文件。
-
定期更新病毒数据库:
你可以设置一个cron作业来定期更新病毒数据库:sudo crontab -e然后添加以下行来每天晚上22:00自动更新病毒数据库(需要root账户,普通账户
sudo freshclam需要输入密码):0 22 * * * freshclam
请注意,这些步骤可能会因为Debian的不同版本而略有不同。如果你遇到任何问题,可以查看ClamAV的官方文档或者Debian的社区论坛获取帮助。
二、ClamAV病毒扫描方法
以下是如何使用ClamAV进行病毒扫描的一些基本命令:
-
扫描单个文件:
clamscan file.txt这将扫描名为
file.txt的文件,并显示是否发现病毒。 -
扫描目录:
clamscan -r /path/to/directory这将递归扫描指定目录及其子目录中的所有文件。
-
扫描结果:
OK:文件没有被检测到病毒。FOUND:文件被检测到病毒。
-
移除病毒:
如果你想要ClamAV在发现病毒时自动删除它们,可以使用--remove选项:clamscan --remove -r /path/to/directory -
静默模式:
如果你不想看到每个文件的扫描结果,可以使用--quiet选项:clamscan --quiet -r /path/to/directory -
扫描结果输出到文件:
你可以将扫描结果输出到一个文件中,以便后续查看:clamscan -r /path/to/directory > scan_results.txt -
使用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 clamscan和man 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 多选框,选中后翻页再回来选中失效问题
问题:勾选的数据分页再回来回消失 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类型;以太网技术的核心为频分一在同一物理介质上,使用多个相互不干涉的频率电波来共同传输数据,实现带宽的不断提升…...
实现类似gpt 打字效果
1. css的动画(animation) css中实现动画有两种方式:transition过渡动画、 animation自定义动画。 具体的可以看MDN链接:https://developer.mozilla.org/zh-CN/docs/Web/CSS/animation 使用keyframes自定义关键帧动画并未其命名使用自定义动…...
项目需求分析流程
项目需求分析是软件开发或任何工程项目中至关重要的第一步。它帮助确保团队理解客户的需求,并为后续的设计、开发和测试工作提供指导。以下是一个详细的需求分析流程: 一、确定项目目标 与利益相关者沟通:包括但不限于客户、最终用户、销售…...
idea连接SQL Server数据库_idea连接sqlserver数据库
4.设置密码(这一步可以在安装数据库时就可以完成),如果觉得用户名有问题,也可以修改用户名 5.查看SQL Server端口号(默认端口:1433),选择SQL Server2019配置管理器 6.打开SQL Server…...
Scala_【2】变量和数据类型
第二章 注释标识符的命名规范命名规则关键字 变量字符串输出数据类型关系变量和数据类型整数类型(Byte、Short、Int、Long)浮点类型(Float、Double)字符类型(Char)布尔类型(Boolean)…...
u3d中JSON数据处理
一.认识JSON 1.1 Json概述 JSON(JavaScript Object Notation,JavaScript对象表示法)JSON和XML是比较类似的技术,都是用来存储文本信息数据的;相对而言,JSON比XML体积更小巧,但是易读性不如XML…...
idea 安装插件(在线安装、离线安装)
目录 在线安装 离线安装 在线安装 1、打开IntelliJ IDEA 2024.x软件, 点击file-Settings 2、点击搜索框,输入plugins,找到plugins列,输入xxx软件--点击install 安装 3、重启idea 离线安装 1、在官网上下载插件包 (1&…...
springboot maven 构建 建议使用 --release 21 而不是 -source 21 -target 21,因为它会自动设置系统模块的位置
使用 --release 选项代替 -source 和 -target 是一种更安全、更兼容的方式,特别是在构建使用较新版本 JDK 的项目时。以下是详细解释和建议: 1. 为什么推荐使用 --release 问题点: 使用 -source 和 -target 标志时,仅设置了代码的语言级别和字节码目标版本,但编译器仍可…...
离散数学 复习 详细(子群,元素的周期,循环群,合同)
子群: 定义: 设(G,)是一个群,H属于G,如果(H,)仍是一个群,则(H,)叫做(G,)的子群。如果G的一个子群H不等于G,即H是G的真子集,则(H,)叫做(G,)的真子群 平凡子群和非平凡子群: 任意群都有两个子集一定是群 (平凡子群):{e} {G},其他…...
Java后端常见问题 (一)jar:unknown was not found in alimaven
1.安装配置maven时未将原来的 mirror 标签注释掉 解决方法:找到 mirrors 标签,先将原来配置的http://0.0.0.0给注释了,这个是高版本的maven增加的一个保护机制,如果不注释,那么使用的时候就下载不了jar包,如下图所示。…...
overleaf中文生僻字显示不正确,显示双线F
我是不想换全文字体的,只是一个生僻字显示不出来,就想要像word一样,把这个生僻字用包含这个生僻字的字体来显示就好了。 解决步骤: 1、使用如下宏包: \usepackage{xeCJK} %声明宏包,主要用于支持在XeTeX…...
C语言中的贪心算法
贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前最优解的算法,希望通过局部最优解的选择,最终得到全局最优解。它常用于解决最优化问题,如最小生成树、最短路径等。本文将从理论到实践,逐步引导…...
虚幻引擎结构之UWorld
Uworld -> Ulevel ->Actors -> AActor 在虚幻引擎中,UWorld 类扮演着至关重要的角色,它就像是游戏世界的总指挥。作为游戏世界的核心容器,UWorld 包含了构成游戏体验的众多元素,从游戏实体到关卡设计,再到物…...
太通透了,Android 流程分析 蓝牙enable流程(stack/hidl)
零. 前言 由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C++等,加上网络上其实没有一个完整的介绍Bluedroid系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员…...
2.微服务灰度发布落地实践(agent实现)
前言 据上一篇,设计方案的分析,综合考虑,最终决定,客户端采用agent方案实现,具本原因不再赘述, 感觉兴趣的小伙伴可以回头了解一下.该篇主要讲java agent的实现,灰度agent客户端的基础框架实现 java agent的介绍 ja…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
