当 clamav 检测到病毒时如何播放歌曲?

当 clamav 检测到病毒时如何播放歌曲?

当使用命令行检测到 clamav 病毒时,如何播放歌曲?歌曲而不是铃声。

为了获取信息,我使用铃铛进行扫描:clamscan -r --bell -i /media

谢谢,

答案1

clamscan(1) 似乎将其输出发送到 stdout,因此将其通过管道传输到 tee,后者会将输出发送到 stdout 和过滤“检测到病毒”的命令,当发现该病毒时,它会调用您的程序播放音乐。从 clam AntiVirus 用户手册来看,输出似乎是此行产生的:

printf("检测到病毒:%s\n", virname);

类似这样的事情应该可以工作:

clamscan |tee (grep "Virus detected" | yourprogram_or_script musicfile )

https://raw.githubusercontent.com/vrtadmin/clamav-faq/master/manual/clamdoc.pdf并参阅 clamscan(1) 和 tee(1) 以了解更多信息。

答案2

根据评论,FI0RlAN-X 回答道:

/usr/bin/clamscan -r -l /var/log/clamscan_sched_$d.log /home/pi/Desktop; [ $? -eq 1 ] && espeak -v en+f2 -s 150 'Warning, a virus has been detected'

为了进一步解释,clamscan 选项来自人蛤蜊扫描

-r,——递归

          Scan  directories  recursively.  All  the  subdirectories in the
          given directory will be scanned.  

-l 文件, --log=文件

          Save scan report to FILE.

返回代码

  0 : No virus found.

  1 : Virus(es) found.

  2 : Some error(s) occured.

因此,第二个命令$?是来自 clamscan 的返回代码,因此测试返回代码是否为 1(发现病毒)[ $? -eq 1 ]并使用带有 espeak 的声音播放声音espeak -v en+f2 -s 150 'Warning, a virus has been detected'

[ $? -eq 1 ] && espeak -v en+f2 -s 150 'Warning, a virus has been detected'

相关内容