因为工程要用pyclamd,所以我基于ubuntu16.04安装了pyclamd,其实主要是安装了clamav,安装了一天,终于成功了。下面给大家说一下我亲测有效的安装教程。
1.首先对apt-get进行更新,执行下面的代码:
sudo apt-get update
sudo apt-get upgrade -y
2.之后安装clamav:这一步可能会出错,ubuntu会提示你重新执行一下上面的update方法,我试了一下,重新执行update之后再重新执行下面的命令就能成功执行了。
sudo apt-get install clamav clamav-daemon -y
3.更新病毒库:这一部分可能会报错,(我这一步报错来着,具体是啥错我给忘记了。。。)如果报错的话可以重新执行第二步的命令,然后再执行一遍下面的命令,就可以成功执行了。
sudo freshclam
4.clamav安装成功之后,可以对它进行测试,执行下面的代码对home文件夹下的文件进行病毒查杀,不出错表示正常执行啦:
sudo clamscan -r /home
5.如果需要自动执行病毒查杀功能,需要执行下面的命令。第一行是启动clamav服务,这一个命令是你如果按章pyclamd调用clamav时必须要提前执行的方法。第二行命令是自动更新病毒库的。到这里,clamav的安装就结束了,撒花撒花~
sudo /etc/init.d/clamav-daemon start
sudo /etc/init.d/clamav-freshclam start
6.安装pyclamd,直接用pip install pyclamd就行,如果是用python3的话就换成pip3执行。
7.检测pyclamd是否正常执行:
import pyclamd
cd = pyclamd.ClamdAgnostic()
cd.ping()
如果返回的结果是TRUE,那么就成功了,
PyClamd提供了两个关键类,一个为ClamdNetworkSocket()类,实现使用网络套接字操作clamd;另一个为ClamdUnixSocket()类,实现使用Unix套接字操作clamd。两个类定义的方法安全一样。本文以ClamdNetworkSocket()类进行说明。
__init__(self,host='127.0.0.1',port=3310,timeout=None)方法,是ClamdNetworkSocket类的初始化方法,参数host为连接主机IP;参数port为连接的端口,默认为3310,与/etc/clamd.conf配置文件中的TCPSocket参数要保持一致;timeout为连接超时时间。
contscan_file(self,file)方法,实现扫描指定的文件或目录,在扫描时发生错误或发现病毒经不终止,参数file(string类型)为指定的文件或目录的绝对路径。
multiscan_file(self,file)方法,实现多线程扫描指定的文件或目录,多核环境速度更快,在扫描时发生错误或发现病毒将不终止,参数file(string类型)为指定的文件或目录的绝对路径。
scan_file(self,file)方法,实现扫描指定的文件或目录,在扫描时发生错误或发生病毒将终止,参数file(string类型)为指定的文件或目录的绝对路径。
shutdown(slef)方法,实现强制关闭clamd进程并退出。
stats(self)方法,获取Clamscan的当前状态。
reload(self)方法,强制重载clamd病毒特征库,扫描当前建议做reload操作。
EIRAR(self)方法,返回EICAR测试字符串,即生成具有病毒特征的字符串,便于测试。