Filtrar diferencias y añadir
Publicado por nuke (4 intervenciones) el 07/11/2011 17:09:16
Buenas tardes compañeros, a ver si alguien puede echarme un cable.
Estoy realizando un script para obtener las macs de los equipos de la red y posteriormente añadirlo a las reglas de iptables.
Os comento hasta donde he llegado.
dir=/pepe/scripts/tmp
# Obtenemos ips a partir fichero dhcp/bind
grep 192.168 $dir/db.mydomain.local > $dir/getip.txt
sed '/^$/d' $dir/blank > $dir/getip.txt
cat $dir/getip.txt | cut -f 5 > $dir/blank
# Extraemos MACS de ips
echo "" > $dir/get_mac.txt
for MAC in `cat $dir/getip.txt`
do
nmap -sS $MAC >> $dir/get_mac.txt
done
Esta parte del script funciona correctamente y obtengo las macs
00:13:8B:2E:DA:13
00:05:29:02:08:4A
00:12:C1:63:A8:CE
00:15:76:C6:DC:47
Aquí es donde me quedo bloqueado,
Mi idea es comparar linea a linea del fichero obtenido sobre el fichero que actualmente me crea la regla en el iptables.
he intentando a traves de la salida estandar si el resultado de grep es 1 añade sobre el fichero del iptables mac.allow
for busca in `cat $dir/get_mac.txt`
do
grep $busca > $dir/busqueda
insert=$(grep -c $dir/busqueda $dir/mac.allow)
if [ $insert -gt 0 ]; then
echo ""
else
echo $busqueda >> $dir/mac.allow
fi
done
Estoy abierto a cualquier sugerencia. En si lo que quiero hacer es recorrer todo el fichero1 comparar con el fichero2 y añadir las diferencias al fichero2.
Gracias por vuestra ayuda
Estoy realizando un script para obtener las macs de los equipos de la red y posteriormente añadirlo a las reglas de iptables.
Os comento hasta donde he llegado.
dir=/pepe/scripts/tmp
# Obtenemos ips a partir fichero dhcp/bind
grep 192.168 $dir/db.mydomain.local > $dir/getip.txt
sed '/^$/d' $dir/blank > $dir/getip.txt
cat $dir/getip.txt | cut -f 5 > $dir/blank
# Extraemos MACS de ips
echo "" > $dir/get_mac.txt
for MAC in `cat $dir/getip.txt`
do
nmap -sS $MAC >> $dir/get_mac.txt
done
Esta parte del script funciona correctamente y obtengo las macs
00:13:8B:2E:DA:13
00:05:29:02:08:4A
00:12:C1:63:A8:CE
00:15:76:C6:DC:47
Aquí es donde me quedo bloqueado,
Mi idea es comparar linea a linea del fichero obtenido sobre el fichero que actualmente me crea la regla en el iptables.
he intentando a traves de la salida estandar si el resultado de grep es 1 añade sobre el fichero del iptables mac.allow
for busca in `cat $dir/get_mac.txt`
do
grep $busca > $dir/busqueda
insert=$(grep -c $dir/busqueda $dir/mac.allow)
if [ $insert -gt 0 ]; then
echo ""
else
echo $busqueda >> $dir/mac.allow
fi
done
Estoy abierto a cualquier sugerencia. En si lo que quiero hacer es recorrer todo el fichero1 comparar con el fichero2 y añadir las diferencias al fichero2.
Gracias por vuestra ayuda
Valora esta pregunta


0