ClamAV - Cron schreiben ( if Abfrage )

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Daether
Beiträge: 110
Registriert: 12.05.2006 18:37:04
Kontaktdaten:

ClamAV - Cron schreiben ( if Abfrage )

Beitrag von Daether » 25.05.2010 11:06:15

Moin Moin,
ein wenig zur Übung und ein wenig zum Nutzen habe ich ein kleines Shell-Skript geschrieben, welches einmal täglich per Cron einen Virenscan mit ClamAV durchführen soll.

Dabei gibt es 2 Probleme :
1. Das Eintragen ins Scanlog funktioniert zwar einwandfrei, nur sieht es irgendwie etwas gefrikelt aus, so wie ich es gelößt habe. Gibt es da schönere Methoden ?
2. Bei der IF-Abfrage, möchte ich folgendes:
Sofern der Grep etwas gefunden hat, soll eine Mailversendet werden.
So wie ich es geschrieben habe, funktioniert es nicht.
Hat da jemand einen Tip, wie das in der IF-Abfrage aussehen muss ?

Hier das Skript:

Code: Alles auswählen

#!/bin/bash

#Variablen festlegen
scandir="/var/testdir"
scanlogdir="/var/log/clamav/dailyscans"
scanlog="dailyscan.log"
server="test"

#Update durchführen
freshclam


#Scanlog -> Ueberschrift erstellen
echo "

-------------------------------------------------------------------------------" >> $scanlogdir$scanlog

date >> $scanlogdir$scanlog

echo "\n" >> $scanlogdir$scanlog


#Scan durchführen
clamscan -r -l $scanlogdir$scanlog $scandir


#Bei Virenfund eine Mail an den Admin versenden
found=`grep -i "FOUND" $scanlogdir$scanlog`
if [ found ]
then
        echo "Virus gefunden : $found" | mutt -s "Virus auf $server !" -a $scanlogdir$scanlog mail@example.com
fi

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: ClamAV - Cron schreiben ( if Abfrage )

Beitrag von michaels » 25.05.2010 12:08:56

Ich würde den clamscan mit --infected aufrufen, dann werden auch nur die Dateien aufgeführt, die infiziert sind (du kannst es natürlich auch so lassen und dann den grep Befehl etwas anpassen. Ich nutze ein ähnliches Skript, welches ich noch um Ausnahmen erweitert habe (für Falschmeldungen)).

Zur Abfrage wie viele gefunden wurden, kannst du:

Code: Alles auswählen

anzahl=`/bin/grep -v ^$ $scanlogdir$scanlog | wc -l`
nehmen. Die IF Abfrage lautet dann:

Code: Alles auswählen

if [ anzahl -gt 0 ]; then

bla bla bla

fi
So kannst du auch noch zwischen 1 und mehr gefundenen Viren unterscheiden (um die Meldung etwas schöner zu machen: 1 Virus gefunden; 5 Viren gefunden....)

Daether
Beiträge: 110
Registriert: 12.05.2006 18:37:04
Kontaktdaten:

Re: ClamAV - Cron schreiben ( if Abfrage )

Beitrag von Daether » 25.05.2010 14:41:04

Moin Moin,
danke für die Hilfe.
Werds gleich mal heute abend testen.

//Edit:

Hi, habs versucht und kriege folgende Fehlermeldung :

/root/bin/dailyclamscan.sh: line 25: [: anzahl: integer expression expected

Code: Alles auswählen

anzahl=`/bin/grep -i "FOUND" $scanlogdir$scanlog | wc -l`

echo "------\n"

if [ anzahl -gt 0 ]; then <-- Zeile 25

Antworten