Enviado em 27/06/2012 - 11:56h
@./.ronin,
Eu não sabia dessas funções heheh são muito TOP.
Partindo do exemplo que você repassou eu dei mais uma mexida para tirar aquele monte de arquivos.
Pois acho que o paste só funciona com arquivos.
Pensei sei como fazer em programação simples.. mais em shell preciso de ajuda, tipo fazer algo do tipo
-->> for until _getSubnet equal fim and _getMaskSubnet equal fim algo assim.
Eu não sabia dessas funções heheh são muito TOP.
Partindo do exemplo que você repassou eu dei mais uma mexida para tirar aquele monte de arquivos.
Porem este código ainda tem um problema, como eu faço para juntar duas listas que não são arquivos??
function _procedimentosIniciais(){
rm -rf /etc/scripts/aux/
mkdir /etc/scripts/aux/
cp /etc/dhcp/dhcpd.conf /etc/scripts/aux/dhcpd.conf
arquivoEntrada="/etc/scripts/aux/dhcpd.conf"
arquivoSaidaREGRAS="/etc/scripts/aux/arqREGRAS"
}
function _definicaoDeRegras(){
_INICIO_REGRA='iptables -A INPUT -s'
_ACCEPT_FIM_REGRA='-j ACCEPT'
_REJECT_FIM_REGRA='-j REJECT'
}
function _getSubnet(){
delimitador='subnet'
grep -e $delimitador $arquivoEntrada |
sed "s/$delimitador/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getMaskSubnet(){
delimitador='netmask'
grep -e $delimitador $arquivoEntrada |
sed "s/$delimitador/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getIpList(){
delimitador='fixed-address'
grep -e $delimitador $arquivoEntrada |
sed "s/$delimitador/_/g" |
sed 's/;/_/g' |
cut -d '_' -f2 |
sed 's/ //g'
}
function _getRejectList(){
paste -d '/' $( _getSubnet ) $( _getMaskSubnet )
}
function _getAcceptRules(){
for _ip_range in $( _getIpList )
do
echo "${_INICIO_REGRA} ${_ip_range} ${_ACCEPT_FIM_REGRA}"
done
}
function _getRejectRules(){
unset _ip_range
for _ip_range in $( _getRejectList )
do
echo "${_INICIO_REGRA} ${_ip_range} ${_REJECT_FIM_REGRA}"
done
}
function _finalizaVariaveis(){
unset arquivoEntrada
unset arquivoSaidaREGRAS
unset delimitador
unset _ip_range
unset _INICIO_REGRA
unset _ACCEPT_FIM_REGRA
unset _REJECT_FIM_REGRA
}
function _executar(){
_procedimentosIniciais
_definicaoDeRegras
_getAcceptRules >> $arquivoSaidaREGRAS
_getRejectRules >> $arquivoSaidaREGRAS
chmod +x $arquivoSaidaREGRAS
#$arquivoSaidaREGRAS
cat $arquivoSaidaREGRAS
_finalizaVariaveis
}
_executar
Pois acho que o paste só funciona com arquivos.
Pensei sei como fazer em programação simples.. mais em shell preciso de ajuda, tipo fazer algo do tipo
-->> for until _getSubnet equal fim and _getMaskSubnet equal fim algo assim.
Outra questão.. não manjo de linux, você sabe como eu posso arrumar o bug que está cortando os caracteres?
function _getRejectList(){
paste -d '/' $( _getSubnet ) $( _getMaskSubnet )
}