script pppd

1. script pppd

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 20/04/2012 - 10:29h

Bom dia galera, tenho um script que inicia com o sistema, a função dele é conectar usando o wvdial utilizando um modem 3g e caso caia a conexão, reconecte. Até aí tudo bem, está iniciando com o sistema certinho, blz, conectando, mas... tem certos momentos que quando desconecta o modem não responde mais, então eu executo o comando "pppd /dev/ttyUSB2" esse comando tipo que faz o modem se achar novamente, então conecta perfeitamente, mas quando iniciando automaticamente com o sistema, ele executa o comando normalmente, mas não resolve o problema, então eu mato o discador e executo o comando manualmente aí funciona. Já testei mais de 10 vezes, sempre é assim. Já reparei algumas vezes onde se testa um script manualmente e funciona, mas quando inicializado automaticamente com o sistema se comporta de forma estranha, pois o comando é executado sem erro, mas não se comporta como deveria. Não sei se tem alguma coisa a ver com ter que rodar o comando em bash. Alguma dica?

Abraços.


  


2. Re: script pppd

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 20/04/2012 - 23:19h

Se voce tem este comando para conectar "pppd /dev/ttyUSB2", qual seria para cortar a conexão ?

Você pode colocar o script para iniciar junto com o cron e executar um shell script a cada x tempo que faça algum tipo de teste na conexão. Se ele falhar, vai precisar executar o comando de desconectar e depois o de conectar. Se tiver todos os comandos posso ajudar com o script que ficará rodando e background sem atrapalhar nada.
Aprendi estes dias como lidar com sh em bg. ;) Seria uma boa experiência.



3. Re: script pppd

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 23/04/2012 - 16:51h

Então, ele só executa essa comando quando tenta discar 3 vezes e não consegue. Daí executa este comando. Posso até postar o script aqui, mas é umn pouco grande, no viva o linux tem alguma forma de postar o código para que ele fique mais legível?


4. Re: script pppd

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 23/04/2012 - 20:41h

lucasdona escreveu:

Então, ele só executa essa comando quando tenta discar 3 vezes e não consegue. Daí executa este comando. Posso até postar o script aqui, mas é umn pouco grande, no viva o linux tem alguma forma de postar o código para que ele fique mais legível?


Não tem um local para você fazer upload, mas tem vários ambientes livres que se enviar o script ele vai ficar bom para todos copiarem e se for o caso alterar. Um destes sites é o http://pastebin.com/ faça um teste.



5. Re: script pppd

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 23/04/2012 - 20:48h

Lembrei da dica do @ronin aqui http://sekysu.blogspot.com.br/2012/02/use-o-pastebincom-para-compartilhar.html



6. Re: script pppd

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 24/04/2012 - 09:56h

Show esses sites pra postar código em, não conhecia :-)
Segue o link do código

http://pastebin.com/BDizfcYD

Então, não postei o código todo, pois não achei necessário, mas vamos as linhas que importam.
Quando ele tá na "linha 1" é prq desconectou, fez 3 tentativas de conexão e não conseguiu, então o modem já não está mais respondendo, essa primeira linha resolve o problema, então entra no while até que o pppd seja finalizado sozinhou ou o while gire 10 vezes, então o pppd é assassinado, sai do while e tenta reconectar (o que não mostra no código).

Aí que tá, quando olho o log, ele tenta reconectar novamente, não consegue, e faz tudo isso de novo infinitas vezes (deixa a madrugada toda rodando). Mas aí, qndo chego de manhã, finalizo o script, rodo o "pppd /dev/$TTY" no braço, espero alguns segundos e finalizo ele, tento conectar e conecta, ou seja, faço mesma coisa que o script ficou tentando a madrugada toda e não consegue, eu fazendo manualmente funciona, então, creio eu que é algum problema de inicialização. Segue um exemplo.

O comando "top" é um comando de bash certo? só que se, por exemplo, vc quiser iniciá-lo e gerar um logo, vc tem que ensinar a ele com parâmetros que ele roda em bash, se não ele não funciona direito. Acho que pode ser um caso desses.
vlwww.


7. Re: script pppd

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 24/04/2012 - 10:47h

Lucas,

Faz um teste.

Tenta colocar o comando wait na linha 7 ao invés de usar o comando sleep.
O wait espera a finalização do comando que está em execução.


8. Re: script pppd

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 24/04/2012 - 11:28h

foxbit3r escreveu:

Lucas,

Faz um teste.

Tenta colocar o comando wait na linha 7 ao invés de usar o comando sleep.
O wait espera a finalização do comando que está em execução.


Experimentei o comando wait em rotinas de bg (BackGround) quando sou obrigado que uma tarefa seja terminada para só após executar outras. Parece que esta dica é boa que o @foxbit3r sugeriu.



9. Re: script pppd

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 24/04/2012 - 11:34h

lucasdona escreveu:

Show esses sites pra postar código em, não conhecia :-)
Segue o link do código


Legazimmm rsrs



Já vou ver...


Então, não postei o código todo, pois não achei necessário, mas vamos as linhas que importam.
Quando ele tá na "linha 1" é prq desconectou, fez 3 tentativas de conexão e não conseguiu, então o modem já não está mais respondendo, essa primeira linha resolve o problema, então entra no while até que o pppd seja finalizado sozinhou ou o while gire 10 vezes, então o pppd é assassinado, sai do while e tenta reconectar (o que não mostra no código).


O comando trap é uma mão na roda para controlar sinais. Suspeito que seu programa precise de controles que identifiquem sinais e faça algum tipo de chamada ao trap para tratar os eventos.


Aí que tá, quando olho o log, ele tenta reconectar novamente, não consegue, e faz tudo isso de novo infinitas vezes (deixa a madrugada toda rodando). Mas aí, qndo chego de manhã, finalizo o script, rodo o "pppd /dev/$TTY" no braço, espero alguns segundos e finalizo ele, tento conectar e conecta, ou seja, faço mesma coisa que o script ficou tentando a madrugada toda e não consegue, eu fazendo manualmente funciona, então, creio eu que é algum problema de inicialização.


Muito estranho. Alguém que é fera e GNU/Linux pode me dizer algo sobre a montagem do dispositivo ? "pppd /dev/$TTY"


Segue um exemplo.

O comando "top" é um comando de bash certo?


Que eu saiba é um aplicativo do estilo utilitário ou ferramentas.


só que se, por exemplo, vc quiser iniciá-lo e gerar um logo, vc tem que ensinar a ele com parâmetros que ele roda em bash, se não ele não funciona direito. Acho que pode ser um caso desses.
vlwww.


Até onde sei, alguns casos em que o top não trabalha bem estão relacionados a permissões. Nunca tive problemas com o top se é que estamos falando do mesmo aplicativo.







10. Re: script pppd

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 24/04/2012 - 11:37h

Olhando o script sem testar, parece que já localizei um problema nos testes -> http://pastebin.com/BDizfcYD

Preciso conseguir simular uma conexão pppd aqui, mas acho que pode ser este o porque não consegue a reconexão.

Vou alterar o script e já envio por aqui.




11. Re: script pppd

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 24/04/2012 - 13:37h

AprendiNoLinux, vc é fera!

Cara, se eu tivesse como simular uma conexão 3G aqui ajudaria bastante.
Acho que seria legal se fosse colocado a saída do script no modo debug.



script.sh
codigo do script ...
codigo do script ...
codigo do script ...

set -x
[ parte do código que está apresentando falhas ]
set +x

codigo do script ...
codigo do script ...




12. Re: script pppd

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 24/04/2012 - 15:38h

foxbit3r escreveu:

AprendiNoLinux, vc é fera!

Cara, se eu tivesse como simular uma conexão 3G aqui ajudaria bastante.
Acho que seria legal se fosse colocado a saída do script no modo debug.



script.sh
codigo do script ...
codigo do script ...
codigo do script ...

set -x
[ parte do código que está apresentando falhas ]
set +x

codigo do script ...
codigo do script ...



ok, já me preveni a respeito.

No início tem:


#set -x # Liga Debug de tudo.
#trap read DEBUG


Se desmarcado vale para todo código.
Já com as opções desativadas, coloquei as instruções para poder acompanhar, ex:


Debug 2 "parte do código que está apresentando falhas [F:$FUNCNAME L:$LINENO]"


Na função de Debug mudo o código para entrar em ação após receber a primeira mensagem. Só faço assim se precisar apelar. Neste momento preciso que ele me passe só os comandos que ele executa na mão quando ativa e desativa o 3g e como ele testa para saber que está off ou não fisicamente. Aguardando o retorno.






01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts