当使用命令行检测到 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'