You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用find -ctime -1配合clamscan未筛选新文件问题求助

问题原因分析与修复方案

1. clamscan的-r参数是核心问题

你给clamscan加了-r参数,这个参数的作用是递归扫描指定目录下的所有内容——哪怕你通过管道给它传了筛选后的文件列表,只要列表里包含目录,-r就会让clamscan直接递归扫这些目录里的所有文件,完全忽略你原本想用find做的筛选。这就是脚本扫描全部6000个文件的根本原因。

而你在/tmp执行的命令没加-r,clamscan只会处理find输出的每个条目,不会额外递归,所以能正常筛选新文件。

2. -ctime -1的时间范围不符合需求

find的-ctime -1是按24小时为单位计算的,它会匹配过去24小时内状态发生改变的文件,但你需要每小时检查新增文件,应该用-cmin -60(匹配过去60分钟内状态改变的文件),这样时间范围才精准。

修复后的脚本

去掉clamscan的-r参数,修正find的时间参数,还可以加上-type f只筛选文件(避免clamscan处理目录,逻辑更严谨):

#!/bin/bash

find /var/www/html/files/ -type f -cmin -60 | clamscan --remove --log=/var/log/clam/clamscan.log

验证逻辑

执行修复后的脚本时,find会精准输出过去1小时内新增/修改的文件,管道传给clamscan后,clamscan只会扫描这些指定文件,不会触发全量扫描。

内容的提问来源于stack exchange,提问作者erax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 15:15:31