[Ayuda] Ayuda con shell script
mario benitez
mario en cancun.com
Jue Mar 14 15:55:32 CST 2002
que tal linuxeros,
Tengo un problema con un shell script. Todo el contexto esta mas o menos asi:
en maillog, tengo miles de entradas como la siguiente:
sendmail[11871]: g2B1WpE11871: <global en cancun.com>... User unknown
sendmail[11898]: g2B1XmE11898: <shaman en cancun.com>... User unknown
sendmail[12035]: g2B1aLE12035: <supervac en cancun.com>... User unknown
sendmail[12035]: g2B1aLE12035: <suntour en cancun.com>... User unknown
sendmail[12422]: g2B1kiE12422: <dominos en cancun.com>... User unknown
sendmail[12849]: g2B1x3E12849: <hhda en cancun.com>... User unknown
sendmail[13241]: g2B2CUE13241: <jema en cancun.com>... User unknown
sendmail[13599]: g2B2O0E13599: <ome en cancun.com>... User unknown
osciosamente, con grep y cut (muy basicamente) logre, primero obtener los id's pasandolos a un archivo, posteriormente, vuelvo a comparar estos id4s contra el maillog, obteniendo nuevamente la ip (from=, relay=) desde donde se hacen estos intentos. Resultando en un nuevo archivo:
64.80.64.172
64.8.208.227
64.83.222.17
65.119.83.34
65.171.144.14
65.171.144.99
65.54.195.212
65.89.250.74
66.0.15.179
66.136.215.113
66.181.128.7
con el siguiente script (que es donde necesito la ayuda :), trato de analizar el archivo que tiene los ip's para ver cuantos son el numero de intentos de encontrar (or whatever) a un usuario en el server desde dichos ip's.
-----------
#! /bin/bash
# /tmp/violators_ip_all contiene todos los ips que fueron filtrados
echo "" > /tmp/violators_insistence # almacena el no. de insistencias por ip
echo "" > /tmp/violators_bloqued # genera file p/bloquear c/iptables
$ip_violator = 0.0.0.0
$counter = 1
$max_insistence = 5
for i in `cat /tmp/violators_ip_all`
do if [$ip_violator -eq $i]
then
counter = counter + 1
else
if [$counter -gt $max_insistence]
then
echo "$ip_violator, $counter" >> /tmp/violators_insistence
echo "$ip_violator ..."
# echo "iptables -A -s $ip_violator -d localhost DROP" >> /tmp/violators_bloqued
echo "aqui van los iptables ..."
else
counter = 1
ip_violator = "$i"
fi
fi
done
-----------
al correr el script me manda el siguiente error:
aqui van los iptables ...
/spammers_insistence: [: missing `]'
...
aqui van los iptables ...
/spammers_insistence: [: missing `]'
...
aqui van los iptables ...
/spammers_insistence: [: missing `]'
...
Alguna idea?????, la verdad ando perdido en bash programming, pero con lo poco que he revisado, no encuentro error. Gracias de antemano.
Saludos
Marinho.-
Más información sobre la lista de distribución Ayuda