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

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

Re: [shell-script] Procurar conteúdo de um array em outro.


From: Julio C. Neves
Subject: Re: [shell-script] Procurar conteúdo de um array em outro.
Date: Thu, 30 Oct 2014 17:59:51 -0200

Veja se dá para fazer o seguinte:

cat atualizacao >> cad_mac
sort -u cad_mac

Onde atualizacao contém os macs que vc quer incluir em cad_mac

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 10 a 14/11
São Paulo 4Linux 24 a 28/11
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 30 de outubro de 2014 16:24, Luis Fernando address@hidden [shell-script] <address@hidden> escreveu:
 

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]