Enviado em 12/07/2012 - 18:00h
Pessoal tenho um case no meu shell que não sei o porque não esta entrando na condicional.
#!/bin/bash
# package http://sekysu.blogspot.com
#
# Makes iptables rules usings the /etc/dhcp/dhcp.conf file
# file MkIptblFromDhcpConf.sh
#
# charset UTF-8
# endofline Linux
# since 2012-26-06 23:58 (GMT -03:00)
# license GPL v2.0
#
# system GNU bash, version 3.1.17(2)-release i486 slackware 12.2
# autor Paulo Riceli (./.ronin) [ http://sekysu.blogspot.com ]
# autor Luis Vilella (luivilella)[http://www.vivaolinux.com.br/perfil/verPerfil.php?login=luivilella]
# more http://sekysu.blogspot.com
typeset -r _INPUT_ARQ='/etc/scripts/aux/dhcpd.conf'
typeset -r _RULES='/tmp/rules.sh'
typeset -r _START_RULE='iptables -A INPUT -s'
typeset -r _ACCEPT_END_RULE='-j ACCEPT'
typeset -r _REJECT_END_RULE='-j REJECT'
function _getSubnet()
{
_DELIM='subnet'
grep -e ${_DELIM} ${_INPUT_ARQ} |
sed "s/${_DELIM}/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getMaskSubnet()
{
_DELIM='netmask'
grep -e ${_DELIM} ${_INPUT_ARQ} |
sed "s/${_DELIM}/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getIp()
{
_DELIM='fixed-address'
grep -e ${_DELIM} ${_INPUT_ARQ} |
sed "s/${_DELIM}/_/g" |
sed 's/;/_/g' |
cut -d '_' -f2 |
sed 's/ //g'
}
function _getRejectList(){
_INDICE=0
for _CONTEUDO in $(_getMaskSubnet)
do
_MASK[${_INDICE}]=${_CONTEUDO}
_changeMask
_INDICE=`echo "(${_INDICE} + 1)" | bc`
done
unset _CONTEUDO
_INDICE=0
for _CONTEUDO in $(_getSubnet)
do
_SUBNET[${_INDICE}]=${_CONTEUDO}
_INDICE=`echo "(${_INDICE} + 1)" | bc`
done
unset _CONTEUDO
for ((i=0; i < ${_INDICE} ; i++))
do
echo -e "\n${_SUBNET[${i}]}/${_MASK[${i}]}"
done
unset _INDICE
unset i
# echo "$(_getSubnet) $(_getMaskSubnet)"
}
function _changeMask()
{
case "`echo ${_MASK[${_INDICE}]} | sed 's/ //g' | sed 's/\.//g'`" in
"`echo "128.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='1';;
"`echo "192.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='2';;
"`echo "224.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='3';;
"`echo "240.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='4';;
"`echo "248.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='5';;
"`echo "252.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='6';;
"`echo "254.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='7';;
"`echo "255.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='8';;
"`echo "255.128.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='9';;
"`echo "255.192.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='10';;
"`echo "255.224.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='11';;
"`echo "255.240.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='12';;
"`echo "255.248.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='13';;
"`echo "255.252.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='14';;
"`echo "255.254.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='15';;
"`echo "255.255.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='16';;
"`echo "255.255.128.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='17';;
"`echo "255.255.192.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='18';;
"`echo "255.255.224.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='19';;
"`echo "255.255.240.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='20';;
"`echo "255.255.248.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='21';;
"`echo "255.255.252.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='22';;
"`echo "255.255.254.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='23';;
"`echo "255.255.255.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='24';;
"`echo "255.255.255.128" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='25';;
"`echo "255.255.255.192" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='26';;
"`echo "255.255.255.224" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='27';;
"`echo "255.255.255.240" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='28';;
"`echo "255.255.255.248" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='29';;
"`echo "255.255.255.252" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='30';;
"`echo "255.255.255.254" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='31';;
* );;
esac
}
function _getAcceptRules()
{
for _IP_RANGE in $(_getIp)
do
echo "${_START_RULE} ${_IP_RANGE} ${_ACCEPT_END_RULE}"
done
}
function _getRejectRules()
{
unset _IP_RANGE
for _IP_RANGE in $( _getRejectList )
do
echo "${_START_RULE} ${_IP_RANGE} ${_REJECT_END_RULE}"
done
}
function _execute()
{
_getAcceptRules > ${_RULES}
_getRejectRules >> ${_RULES}
#echo -e "\n $0 \n The rules list from \n ${_RULES}\n"
cat ${_RULES}
}
function _main()
{
if [ -e ${_INPUT_ARQ} ]
then
_execute
else
echo -e "$0::Input error \nThe file ${_INPUT_ARQ} not exists"
exit 1
fi
}
_main &&
exit 0
#dhcp3-server
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
#definindo a rede que o dhcp ira funcionar
subnet 10.1.1.0 netmask 255.255.255.0
{
range 10.1.1.100 10.1.1.252;
option routers 10.1.1.98;
option domain-name-servers 208.67.222.222
,208.67.220.220
,67.138.54.100
,207.225.209.66
,156.154.70.1
,156.154.71.1
,8.8.8.8
,8.8.4.4;
option broadcast-address 10.1.1.255;
host xxxxxxxxx
{
hardware ethernet ac:72:89:09:a4:11;
fixed-address 10.1.1.111;
}
host xxxxxxxxx
{
hardware ethernet 4c:ed:de:74:be:ff;
fixed-address 10.1.1.209;
}
host xxxxxxxxx
{
hardware ethernet b4:74:9f:9c:64:f8;
fixed-address 10.1.1.215;
}
host xxxxxxxxx
{
hardware ethernet b4:82:fe:0a:4b:55;
fixed-address 10.1.1.248;
}
.........
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Preciso resolver um erro de DPKG (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta