当存在时移快照时有效地使用 clamav

当存在时移快照时有效地使用 clamav

我正在寻找一种简单的方法,在还启用了基于 Timeshift 的快照的计算机上使用 clamav 执行完整的系统扫描。

正如 Ubuntu 网站上的这个答案所建议的,我使用的命令如下:

clamscan -r --bell -i -exclude-dir="^/sys" /

(注意:-exclude-dir="^/sys"另一个用户向我建议了该参数,指出 /sys 是一个虚拟目录,最好从扫描中排除以避免可能的读取访问错误)

该命令按预期工作,“检查计算机上的所有文件,但仅显示受感染的文件,并在发现时敲响警铃”。

这有一个明显的问题:“计算机上的所有文件”包含“/timeshift”目录,该目录是Timeshift用来存储快照数据的目录。

现在,摘自Timeshift官方页面:

在RSYNC模式下,快照是使用 rsync 和硬链接拍摄的。快照之间共享公共文件从而节省磁盘空间。每个快照都是完整的系统备份,可以使用文件管理器进行浏览。

简单来说:Timeshift 会复制已更改的文件,并使用硬链接来引用未更改的文件。据我的理解,这意味着“第一个”快照可能是文件系统的完整副本(显然不包括 Timeshift 配置为忽略的任何文件/路径),而任何后续快照仅包含更改的文件和仅指向的链接到不变的。

问题:在标准设置下,clamscan 还将扫描 /timeshift 文件夹中的每个文件。虽然我可以扫描已更改的文件,这些文件是实际的真实文件...扫描链接似乎很浪费,因为基本上这意味着多次扫描同一个文件 - 一次扫描文件第一次更改的快照,然后每个扫描一次链接到以下快照中未更改的文件。

因此,我正在寻找一种简单的方法来从扫描中排除这些硬链接。man clamscan显示了一个选项的存在--follow-file-symlinks,但即使这样做

clamscan -r --bell -i -exclude-dir="^/sys" --follow-file-symlinks=0 /

似乎不起作用。毕竟,据我了解,该选项仅排除符号链接,而 Timeshift 正在使用硬链接

所以,我的问题是:有没有办法执行完整的系统扫描,同时跳过扫描 /timeshift 目录中的硬链接文件,同时扫描真实的文件?

(作为附带问题:使用 clamtk UI 也可以实现同样的效果吗?)

答案1

文件的硬链接与您所说的“真实文件”没有什么区别——它实际上是位于两个目录中的同一个文件。对于您的情况,最好的解决方案就是在命令-exclude-dir="^/timeshift"中再添加一个参数clamscan

相关内容