我的服务器是centos 7.4,clamav 0.101.1-1.el7。
当我clamscan -r --infected --exclude-dir="^/sys" /
通过终端运行时,我总是等待超过 6 个小时才能得到输出。
如果我关闭终端,clamscan
将停止。
然后我想用clamdscan
在后台扫描。
我的问题是:
1.如何--exclude-dir="^/sys" /
处理clamdscan
?
2.如何clamdscan
只做日志--infected
?
clamdscan
通过命令行提供clamscan
clamdscan
的选项没有从它的配置文件中读取它的大部分选项那么/etc/clamav/clamd.conf
多您可以在文件中添加多个ExcludePath
选项/etc/clamav/clamd.conf
。这些在正则表达式中:然后你可以运行它:
--multiscan
将加快处理速度,因为它使用多个线程。--fdpass
将允许您以运行 clamav-daemon.service 的 clamd 用户身份扫描文件。--quiet
应该抑制除受感染文件之外的所有输出。至少这似乎是在我的系统上所做的,但这不是文档中描述的方式。如果要保存到文件,您可以重定向输出
clamdscan <options> > /save/file.txt
或使用
--log=FILE
选项将其保存到文件。将您的命令放入 cron 作业中,然后您就完成了。
如果您正在编写脚本,我建议您检查退出代码
clamdscan
,然后让您的脚本在检测到病毒时向您发送电子邮件:clamdscan
文档:httpsclamd.conf
://linux.die.net/man/1/clamdscan文档:https ://linux.die.net/man/5/clamd.conf您可以使用此命令创建一个 cron.daily 脚本,该脚本仅在感染>0 时才会发送电子邮件。
echo -e '#!/usr/bin/env\nnice -n5 clamscan -ri / --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/media --exclude=/mnt -l clamav.log && MALWARE=$(tail "clamav.log"|grep Infected|cut -d" " -f3) && if [ "$MALWARE" -ne "0" ]; then mail -s "Malware Found" $EMAIL <<< $(cat clamav.log); fi && rm -f clamav.log' > "/etc/cron.daily/clamscan_daily" && chmod +x /etc/cron.daily/clamscan_daily
echo -e 'service clamav-freshclam stop && freshclam && service clamav-freshclam start' >> "/etc/cron.daily/clamscan_daily"
用这个
clamscan --recursive --infected --exclude=/proc --exclude=/sys --exclude=/dev /path