#!/bin/bash
# /etc/udev/rules.d/70-clean-usb.rules contains the following line:
# ACTION=="add", KERNEL=="sd?", RUN+="/home/administrator/mount-n-clean.sh &"
modprobe pcspkr
sleep 1
mounted=$(mount | grep -oP "/dev/sd[b-z][0-9]+")
parts="$(ls -1 /dev/sd* | grep -oP "/dev/sd[b-z][1-9]")"
echo "$parts" | while read part
do
[ "$part" == "" ] && continue
[ "$(echo "$mounted" | grep $part)" != "" ] && continue
mntDir=$(mktemp -d)
mount $part $mntDir
find $mntDir -maxdepth 1 -type d -exec fatattr -hs "{}" \;
vault="$mntDir/viruses_found"
[ ! -d $vault ] && mkdir $vault
clamscan --exclude-dir=$vault -i -l $mntDir/virus-scan-results_$(date +%Y-%m-%d).txt --move=$vault -r $mntDir
[ $(ls -1 $vault | wc -l) -eq 0 ] && rm -r $vault
umount $mntDir
rm -r $mntDir
done
/usr/bin/beep -f 300 -l 120;beep -f 450 -l 120