Tempo limite [RESOLVIDO]

1. Tempo limite [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 19/08/2011 - 13:45h

Olá pessoal, sou novo nas distribuições linux e atualmente
estou utilizando um servidor debian, com funções de firewall,
controles de acesso, gerenciador de logs e banda e web.

Pois bem, criei um firewall que da duas opções na hora da inicialização:

1 = Iniciar firewall
2 = Nao inicializar firewall

Meu grande problema está ai, queria criar um 'tempo de espera' para a pergunta, ou seja,
caso o usuario nao selecione uma opção em "x" segundos, ele auto-inicializa o firewall.

Porque isso?
Caso eu precise realizar alguma manutenção, backup ou qualquer outro tipo de alteração no sistema
não desejo inicializar nenhuma das opções do firewall, justamenten para não prejudicar
qualquer alteração/backup.

Ou seja, a grosso modo criaria uma repetição onde:

Enquanto segundos for diferente de 0 e resposta diferente de 1 ou 2
Continue com a tela de opções

Se segundos for = 0 e resposta diferente de 1 ou 2
reposta recebe 1
senão
resposta recebe opção selecionada

É isso, Desde já muitissimo obrigado.

Essa comunidade é incrivel!



  


2. Re: Tempo limite [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/08/2011 - 14:23h

Se o firewall pode estar ligado ou não, qual seria o outro estado? faltou um pouco de nexo nas coisas...


3. Re: Tempo limite [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 19/08/2011 - 14:38h

Olá amigo saulfelipe,
funciona da seguinte forma,
eu ligo meu servidor, ao executar o script
ele pergunta se desejo ou não inicializar o firewall da seguinte forma +/-:

while [ rpt=s ] do
echo "deseja executar firewall?" ; read opc
if [ $opc == s ] ; then
inicializa firewall
rpt=n
elif [ $opc == n ] ; then
n inicializa
rpt=n
else
da uma mensagem de opcao invalida e volta a realizar a pergunta
rpt=s
fi
done

Qual o problema?
se eu nao responder a pergunta, ele fica por tempo ifinito aguardando a mesma..
Oque eu queria?
que se caso eu não responder a mensagem é pq eu quero que seja executado o script
Ou seja, se segundos = 0 a variavel resp dentro do while recebe 's' e ele executa o script

Sacou?



4. Re: Tempo limite [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 19/08/2011 - 14:52h

Vamos ver se eu estou achando que é tão simples assim...

Coloque um sleep após a "pergunta" se não for respondida, continua após o time do sleep...

Viajei?!


5. Re: Tempo limite [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 19/08/2011 - 14:55h

Volcom, já pensei nisso..
o problema é que quando
cai no comando "read resp"
ele da um 'pause' e aguarda a resposta do usuario
ou seja

Pergunta ; sleep 3 ; read resp
ou
Pergunta ; read resp ; sleep

Nas duas alternativas, quando se lê o comando "read resp"
ele 'trava'


6. Re: Tempo limite [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 19/08/2011 - 15:00h

Tenta fazer um "mix" do sleep passando um arquivo de resposta, por exemplo, dá um sleep e depois do tempo especificado se não houver nenhuma ação manda ele ler um arquivo de texto (< arquivo.txt) com a resposta esperada pela condição.

Fui claro??? hehehe

Não sei se essas opções funcionam, mas...vale tentar...


7. Re: Tempo limite [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 19/08/2011 - 15:01h

Por exemplo:

Pergunta ; read resp ; sleep < arquivo.txt

Será!?


8. Re: Tempo limite [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 19/08/2011 - 15:07h

Use a opção '-t tempo_em_segundos' do read. Ex.:

==================
read -t 3 -p "(S)im ou (N)ao?: " var
resp=${var:-N} # Se nada for informado, então o valor padrão é 'N'.
echo -e "\nSua resposta foi: $resp"
==================


9. Re: Tempo limite [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 19/08/2011 - 15:08h

compilando
Deseja executar? ;
read resp ; <----------------------precisa de uma resposta para continuar e ler a linha abaixo, se nao tiver resposta ele fica parado nesta 'pergunta'
sleep < arquivo.txt


10. Re: Tempo limite [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 19/08/2011 - 15:11h

SMarcell
Muito bom, era exatamente isso que eu precisava...
Muitissimo obrigado!!

Volcom e os demais, muitissimo obrigado também.

Valeu, Valeu.


11. Re: Tempo limite [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 19/08/2011 - 15:12h

Grande SMarcell!

Me tira uma dúvida, a opção -t do read assume os valores em segundos, minutos...?

Creio que segundos, mas para certificar...

Tks


12. Re: Tempo limite [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 19/08/2011 - 15:14h

Volcom -t 3 por padrao assume segundos
imagino que
-t 3m = 3minutos
-t 3h = 3horas
etc ..




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts