J'ai des codes erreur sur un script et je ne parviens pas à déceller la cause.
#! /bin/sh
TAIL="tail" #commande tail du système
TMP="/usr/local/etc/tmp" #répertoire temporaire utilisé pour stocker les fichiers temporaires
GREP="grep" #commande grep du système
MAIL="mail" #commande mail du système
KEYWORDS="/etc/logkeywords" #fichier contenant les mot clés à rechercher avec grep
MESSAGES="/var/log/messages" #chemin du fichier messages
HACKMESSAGES="/var/log/hackmessages" #chemin du fichier contenant les rapports
MESSAGESSIZE="/etc/messagessize" #dernière taille du fichier messages
HOSTNAME="sneak" #nom du hôte
DATE="date +%d/%m/%y_%H:%M:%S" #date et heure
RESULT=0
OLDSIZE=0
NEWSIZE="filesize $MESSAGES"
DIFFERENCE=0
SYSADMIN="root" #nom de l'administrateur système
umask 077 #tout fichier créé portera l'accès rwx------
#Supprime les dernier rapport $TMP/check* et $TMP/report*
rm -f $TMP/check* $TMP/report*
#Si le fichier messagesize existes récupère son contenu
if [ -f $MESSAGESSIZE ]; then
OLDSIZE="cat $MESSAGESSIZE"
fi
#Calcule la différence de taille entre l'ancienne taille du fichier messages et la nouvelle
#le résultat $DIFFERENCE sera utilisé pour $TAIL -c
let DIFFERENCE=$NEWSIZE-$OLDSIZE
#Si la différence=0 ne fait rien
if [ $DIFFERENCE -ne 0 ]; then
$TAIL -c $DIFFERENCE $MESSAGES > $TMP/check.$$
#MAJ de $MESSAGESSIZE
echo "$NEWSIZE" > $MESSAGESSIZE
if[ $GREP -f $KEYWORDS $TMP/check.$$ > $TMP/checkouput.$$ ]; then
echo "===============================================================================" >> $TMP/report.$$
echo "$DATE Alertes attaques" >> $TMP/report.$$
echo "===============================================================================" >> $TMP/report.$$
cat $TMP/checkoutput.$$ >> $TMP/report.$$
RESULT=1
cat $TMP/report.$$ >> $HACKMESSAGES
fi
fi
#Si il y a eu des contenus suspects dans le fichier messages, le signal à $SYSADMIN@$HOSTNAME
if [ "$RESULT" -eq 1 ]; then
cat $TMP/report.$$ | $MAIL -s "$HOSTNAME $DATE Alertes attaques" $SYSADMIN
fi
rm -f $TMP/check* $TMP/report*
-----------------------------------
# ./logcheck
./logcheck: line 21: umask: 077 : octal number out of range
./logcheck: line 36: let: /var/log/messages -0: syntax error: operand expected (error token is "/var/log/messages -0" )
./logcheck: line 46: syntax error near unexpected token `then'
./logcheck: line 46: ` if[ $GREP -f $KEYWORDS $TMP/check.$$ > $TMP/checkouput.$$ ]; then'
Message édité par sneakz le 20-12-2002 à 22:18:43