
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;
}
.........
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









