added scripts archive
This commit is contained in:
parent
f7472d6163
commit
3a6c57a049
1 changed files with 59 additions and 0 deletions
59
archive/virusscan.sh
Executable file
59
archive/virusscan.sh
Executable file
|
|
@ -0,0 +1,59 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Scans NAS for viruses and alerts users
|
||||||
|
# Uses avira and clamav ATM
|
||||||
|
USERS="foo@example.org"
|
||||||
|
SCANDIR="/mnt/nas_movies /mnt/nas_music /mnt/nas_p2p /mnt/nas_software /mnt/nas_upload"
|
||||||
|
LOGFILE="/root/virus_scan_$(date +%d_%m_%Y).log"
|
||||||
|
SCANNER=( "avscan -s --batch --log-file=$LOGFILE $SCANDIR"
|
||||||
|
"clamscan -r -i -l $LOGFILE $SCANDIR"
|
||||||
|
)
|
||||||
|
LOGGER=$(which logger)
|
||||||
|
|
||||||
|
|
||||||
|
for i in $(seq 1 $(echo ${#SCANNER[*]})); do
|
||||||
|
LOG_NAME="$(basename $0)_$i_$(date +%d_%m_%Y)_XXXXXX"
|
||||||
|
mktemp -t $LOG_NAME
|
||||||
|
done
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
function logit() {
|
||||||
|
case $2 in
|
||||||
|
error)
|
||||||
|
$LOGGER -si $(basename $0): $1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
$LOGGER -i $(basename $0): $1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mount all noauto things from /etc/fstab
|
||||||
|
for i in $(grep 'nfs.*noauto' /etc/fstab | awk '{print $2}'); do
|
||||||
|
if ! mount $i 2>/dev/null; then logit "Failed mounting $i" "error"; fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Run all scanners
|
||||||
|
|
||||||
|
COUNTER=0
|
||||||
|
for foo in "${SCANNER[@]}"; do
|
||||||
|
TEMPFILE=$(find /tmp -type f -name $LOG_NAME)
|
||||||
|
|
||||||
|
echo "**********************" > $TEMPFILE
|
||||||
|
echo "* $COUNTER. scanner running with: $foo" >> $TEMPFILE
|
||||||
|
echo "**********************" >> $TEMPFILE
|
||||||
|
$foo
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
# Merge all temporary logfiles
|
||||||
|
cat /root/avscan.log /root/clamscan.log > $LOGFILE
|
||||||
|
|
||||||
|
# Send e-mail
|
||||||
|
mail -s "NAS antivirus check" $USERS < $LOGFILE
|
||||||
|
|
||||||
|
# Unmount all noauto things from /etc/fstab
|
||||||
|
sleep 3
|
||||||
|
for i in $(grep 'nfs.*noauto' /etc/fstab | awk '{print $2}'); do
|
||||||
|
if ! umount $i 2>/dev/null; then logit "Failed unmounting $i" "error"; fi
|
||||||
|
done
|
||||||
Loading…
Add table
Add a link
Reference in a new issue