Bom dia pessoal.
Estou precisando da ajuda de vocês.
Eu acabei de elaborar um script para criar/remover regras de acesso ao SMTP.
Fiz alguns teste e aparentemente o script está funcionando, ou seja, fazendo
o que ele deveria fazer porém após a execução desse script a console onde
ela foi executada não aceita mais nenhum comando. Se por exemplo eu der um
ls aparece uma mensagem informando que o comando não foi encontrado.
Sou então obrigado a abrir uma nova console.
Segue abaixo conteúdo do script.
# Configurando as variaveis
BYTES1='"3145728"'
BYTES2='"8388608"'
DATE=`date +%d%m%y`
FILE='qmail-smtpd.rules'
PATH='/var/qmail/control'
PATH1='/backup/smtpd_rules'
RULE=':allow,RELAYCLIENT="",LOGLEVEL="1024",WHITELISTED="",AUTHREQUIRED="",NOPBS="",SMTPAUTH="",DATABYTES='
/usr/bin/clear
# Fazendo backup do arquivo original
/bin/cp -f "$PATH"/"$FILE" "$PATH1"/"$FILE"."$DATE"
if [ "$?" != 0 ]
then
echo "Erro na geracao do backup"
echo "Saindo..."
exit
fi
# Criando uma copia do arquivo original
/bin/cp -f "$PATH"/"$FILE" /tmp/"$FILE".tmp
if [ "$?" != 0 ]
then
echo "Erro na geracao do temporario"
echo "Saindo..."
exit
fi
export op1=0
while [ "$op1" -lt 1 -o "$op1" -gt 3 ]
do
/usr/bin/clear
/bin/echo -e "
+---------------------------------------------+
| |
| MANUTENCAO DO ARQUIVO QMAIL-SMTPD.RULES |
| |
+---------------------------------------------+
OPCAO ACAO
===== ====
1 INCLUIR DATABYTES
2 EXCLUIR DATABYTES
3 TERMINA
Entre com a opcao desejada: \c"
read op1
done
if [ "$op1" = 3 ]
then
exit
fi
echo
echo -e "Digite o endereco IP: \c"
read ip
case $op1 in
1) export op2=0
while [ "$op2" -lt 1 -o "$op2" -gt 2 ]
do
/usr/bin/clear
echo -e "
+---------------------------+
| |
| SELECIONE O DATABYTES |
| |
+---------------------------+
OPCAO TAMANHO
===== =======
1 3Mb
2 8Mb
Entre com a opcao desejada: \c"
read op2
done
case $op2 in
1) echo
echo "$ip""$RULE""$BYTES1" >>
/tmp/"$FILE".tmp
/bin/cp -f /tmp/"$FILE".tmp "$PATH"/"$FILE"
;;
2) echo
echo "$ip""$RULE""$BYTES2" >>
/tmp/"$FILE".tmp
/bin/cp -f /tmp/"$FILE".tmp "$PATH"/"$FILE"
;;
esac
if [ $? = 0 ]
then
echo "Regra criada com sucesso!!!"
else
echo "Erro na criacao da regra"
echo "Saindo..."
exit
fi
;;
2) /bin/grep -v "$ip" /tmp/"$FILE".tmp > /tmp/"$FILE".tmp1
if [ $? = 0 ]
then
echo
echo "Regra removida com sucesso!!!"
else
echo
echo "Problema na remocao da regra"
echo "Saindo..."
exit
fi
/bin/cp -f /tmp/"$FILE".tmp1 "$PATH"/"$FILE"
;;
esac
# Recriando as tabelas SMTP
/sbin/service qmail cdb
Alguém poderia me ajudar a entender o que está acontecendo?