适用于 Mac OS X 的非图形 ClamAV 防病毒解决方案
我写这个作为优秀的 ClamXav 的免费替代品。 MacClam 设置实时目录监控并安排定期扫描。它使用 ClamAV 作为防病毒引擎和 fswatch 来主动监视目录中是否有新文件或更改的文件,然后将其发送到 clamd 进行扫描。 定期全面扫描是通过 cron 安排的。 它还提供了一种从命令行按需扫描单个文件或目录的方法。
我已经在 Mojave (macOS 10.14) 上测试了 MacClam。 但它也可能适用于其他版本的 macOS。
您需要有 Apple 的 Xcode 命令行工具,可以使用以下命令安装
xcode-select --install
然后单击“安装”。安装命令行工具后,如果您使用的是 Mojave,您还需要安装 macOS 标头包:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
安装非常简单。 安装必备工具后,在终端中键入以下内容。
curl -O https://raw.githubusercontent.com/killdash9/MacClam/master/MacClam.sh chmod +x MacClam.sh ./MacClam.sh
这将通过从源代码构建最新版本的 ClamAV 和 fswatch 来引导 MacClam。 它将安排每周一次完整的文件系统扫描,并每天更新一次签名。 它还为 $HOME 和 /Applications 目录设置实时监控。 其中每一项都可以通过修改脚本变量并重新运行脚本来配置。
默认情况下,安装目录为~/MacClam
。 此目录包含所有源文件、二进制文件、日志文件和隔离文件夹。该目录之外的唯一安装工件是 crontab 和MacClam.sh
脚本本身,这是 MacClam 运行所必需的。 如果您想将MacClam.sh
脚本移动到另一个位置,只需从新位置重新运行它,crontab 引用就会更新。 可以通过运行./MacClam.sh uninstall
来完全卸载它。
./MacClam.sh
执行以下操作:
如果需要,从源代码构建 clamd 和 fswatch
在 crontab 中设置定期签名更新和全面扫描
更新clamd签名
启动主动监控服务 clamd 和 fswatch(如果尚未运行)
设置主动监控在启动时运行(也在 crontab 中完成)
如果从终端运行,它将显示任何当前的扫描活动
以下命令
./MacClam.sh /path/file_or_directory ...
执行前面列出的所有操作,然后对文件或目录运行 clamscan。 可以指定多个文件或目录。
./MacClam.sh quarantine
在 Finder 中打开隔离文件夹。 默认情况下,这是~/MacClam/quarantine
./MacClam.sh help
显示帮助消息。
./MacClam.sh uninstall
卸载 MacClam。 更具体地说,它会停止 clamd 和 fswatch。它从 crontab 中删除 MacClam 条目。 它将隔离目录从 MacClam 安装目录移动到 ~/MacClam_quarantine,以防万一其中有您想要的内容。 它删除包含 clamav 和 fswatch 的 MacClam 安装目录。 它不会删除 MacClam.sh 文件,您可以通过再次运行它来重新安装 MacClam。
可以通过在脚本开头编辑配置变量来配置计划扫描、监视和安装位置,然后再次运行脚本以应用更改。
MacClam.sh 被设计为具有非常简单的界面——一个命令即可完成所有操作。 它是幂等的,这意味着如果一切设置正确并且服务正在运行,重新运行 MacClam.sh 将不会执行任何操作。 如果配置变量发生更改,它将确保它们得到应用,并根据需要重新启动服务。
MacClam 执行三种类型的扫描:
主动监控:MacClam 将监控您指定的任何目录活动。 当文件被更改或创建时,将立即对其进行扫描。 默认情况下,监视 $HOME 和应用程序目录。
计划扫描:MacClam 将在计划时间对目录执行递归扫描。 默认情况下,整个硬盘驱动器每周扫描一次。 调度是通过 cron 完成的。
按需扫描:使用一个或多个文件或目录参数运行MacClam.sh
将扫描指定的文件或目录。
在所有情况下,当发现病毒时,都会将其移至隔离文件夹中。 对于主动监控,当识别出病毒时,右上角会显示简短的图形通知。