shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Procurar conteúdo de um array em outro.


From: Luis Fernando
Subject: Procurar conteúdo de um array em outro.
Date: Thu, 30 Oct 2014 16:24:57 -0200
User-agent: KMail/4.13.3 (Linux/3.13.0-37-generic; KDE/4.13.3; x86_64; ; )

Pessoal, 

        Estava precisando montar um script para atualizar uma tabela de 
mac-addresses no meu firewall, lendo a partir de um arquivo de configuração do 
dhcp e precisava apenas incluir em uma cadeia específica do iptables apenas os 
mac’s que ainda não estivessem presentes nela.

        Confesso que estou um pouco enferrujado com bash, mas aqui vai meus 2 
centavos de contribuição:

#!/bin/bash

ARRTABLES=(`iptables -nL MAC | tr [A-F,M] [a-f.m] | grep all | grep 'mac ' | 
awk '{ print $7 }' | xargs`)
ARRCADAST=(`grep -v ^# /etc/dhcp/autorizados.conf | grep AUTHORIZED | cut -d: 
-f 2,3,4,5,6,7 | sed -e 's/;//g' | xargs`)

for i in `seq 0 $(( ${#ARRCADAST[*]} - 1))`; do

        BOLACHOU=0

        for j in `seq 0 $(( ${#ARRTABLES[*]} - 1 ))`; do
                if [ "${ARRTABLES[$j]}" == "${ARRCADAST[$i]}" ]; then
                        BOLACHOU=1
                fi
        done

        if [ ${BOLACHOU} -eq 0 ]; then
                iptables -I MAC 1 -m mac --mac-source ${ARRCADAST[$i]} -j RETURN
                echo "Mac cadastrado: ${ARRCADAST[$i]}"
        fi

done

-- 

Atenciosamente,

Luis Fernando
address@hidden

Atenção: O conteúdo deste email é confidencial, legalmente protegido, restrito 
e de uso exclusivo dos destinatários, sendo sua divulgação proibida por lei. 
Caso tenha recebido essa correspondência eletrônica por equívoco, por favor, 
avise imediatamente o remetente, respondendo este email e em seguida delete-o.

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]