De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rafael Henrique da Silva Correia
Data de Publicação: 15 de Janeiro de 2007
Gostaria de mostrar 2 scripts pra vocês que estão me ajudando muito no meu dia-a-dia. Sou um usuário de internet discada, como todos sabem, suas características marcantes são a lentidão e as quedas, 1 por hora dependendo do provedor (se não mais). Eu queria desenvolver um programa que me mantivesse conectado 24h por dia mesmo que eu não estivesse em casa, essa era minha proposta inicial, porém também gosto de usar meu computador mesmo que não esteja em casa, resumindo ssh :)
Criei então dois scripts (um deles baseado na Mala direta de Júlio César Neves no Cantinho do Shell) deste mesmo site!
O primeiro é um script para verificar se a conexão está ativa de um em um
minuto, em caso de queda de conexão ele reconecta pelo wvdial
O segundo (que foi baseado na mala direta) envia meu ip de uma em uma hora para meu e-mail! Porque em uma reconexão eu perco meu ip anterior por não ser estático.
(o objetivo desta dica é usar o wvdial para conectar, se no caso seu modem não estiver em pleno funcionamento descarte essa dica)
O wvdial
é um discador em modo texto do GNU/Linux, encontrado em quase
todas as distribuições (se não todas). Ele é muito fácil de ser configurado,
você só precisa escrever um arquivo de configuração chamado wvdial.conf
no
diretório /etc.
Como configurá-lo??
Uma coisa acaba se tornando simples quando você quebra a cabeça durante
3 meses pra ver isso funcionar, no meu caso apanhei de 10x0 do meu modem
durante 3 meses, mas quando você passa um tempo quebrando a cabeça você
aprende como funcionam as coisas. Há um tempo atrás usava o gnome-ppp
(discador do Gnome) agora só uso o wvdial
, porque gostei mais dele e ele
não tem tantos problemas como o gnome-ppp
.
[Dialer Defaults] Modem = [local do dev do modem] ISDN = off Modem Type = Analog Modem Baud = 115200 Init = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init3 = Init4 = Init5 = Init6 = Init7 = Init8 = Init9 = Phone = [número a ser discado] Phone1 = Phone2 = Phone3 = Phone4 = Dial Prefix = Dial Attempts = 1 Dial Command = [discagem tom=ATM1L3DT pulso=ATM1L3DT] Ask Password = off Password = [senha] Username = [seu username COMPLETO] Auto Reconnect = off Abort on Busy = on Carrier Check = on Check Def Route = on Abort on No Dialtone = on Stupid Mode = on Idle Seconds = 0 Auto DNS = on ;Minimize = off ;Dock = on ;Do NOT edit this file by hand!
Esta seria a sintaxe do arquivo, o meu arquivo de exemplo está aqui:
[Dialer Defaults] Modem = /dev/ttySL0 ISDN = off Modem Type = Analog Modem Baud = 115200 Init = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init3 = Init4 = Init5 = Init6 = Init7 = Init8 = Init9 = Phone = 32418415 Phone1 = Phone2 = Phone3 = Phone4 = Dial Prefix = Dial Attempts = 1 Dial Command = ATM1L3DT Ask Password = off Password = [minha senha] Username = rafael_henriqu@itelefonica.com.br Auto Reconnect = off Abort on Busy = on Carrier Check = on Check Def Route = on Abort on No Dialtone = on Stupid Mode = on Idle Seconds = 0 Auto DNS = on ;Minimize = off ;Dock = on ;Do NOT edit this file by hand!
Se o modem de vocês estiver configurado, e este arquivo
(/etc/wvdial.conf
) estiver certo quando vocês derem o comando:
$wvdial
no terminal ele vai conectar automaticamente. Detalhe deixe as permissões do
arquivo /etc/wvdial.conf
como 640 e o grupo que vocês tão vendo aí (consultem
comandos chgrp
e chmod
para mais informações):
-rw-r----- 1 root dialout 616 2006-12-16 22:55 /etc/wvdial.conf
#!/bin/bash #verifique se o processo wvdial está sendo executado pstree | grep wvdial >> /dev/null # se wvdial não estiver rodando execute if [ $? -ne 0 ]; then clear x=0 while [ 10 -gt $x ]; do sleep 1 done wvdial #senão não execute else clear exit fi
Problema da conexão resolvida e o ip agora como eu faço??
Agora eu tinha mais um problema. Como fazer para obter meu ip? Eu queria ficar com o servidor ssh no ar 24h por dia.
Problemas acabados pois já inventaram o sendmail
(que é osso pra configurar)
e o msmtp
(que é facinho, facinho) ! No meu script 2 eu precisava de um
"programinha" que me enviasse o ip certo, assim eu caio, o wvdial
reconecta
e o msmtp
me envia o ip por email.
O msmtp é um programa de envio (recebimento não sei pois não testei ainda) de email em modo texto!!
#apt-get install msmtp
No home do user que você quer usar o msmtp
(no meu caso do /home/rafael)
você criará o arquivo .msmtprc
da seguinte forma:
#touch /home/<user>/.msmtprc #vim /home/<user>/.msmtprc
Neste arquivo eu configurei o gmail para o envio de mensagens.
# Set default values for all following accounts. defaults tls on # GMail account gmail host smtp.gmail.com port 587 from rafaelhenriqu@gmail.com auth on user rafaelhenriqu@gmail.com password <senha de vcs> account default : gmail Agora vou explicar: account = nome da continha host = smtp do server port = porta from = quem é você auth = pra requerer autenticação user = vocês password = senha (ooohhh sério) account default = conta padrão que vocês querem usar (ou seja pode configurar mais de uma conta)
Vamos ao script
#!/bin/bash echo -e "From: EU GMAIL<rafaelhenriqu@gmail.com>\nSubject: :) \nTo: EU YAHOO <rafael_henriqu@yahoo.com.br>\n\n$(ifconfig)\n\n" | msmtp -v "rafael_henriqu@yahoo.com.br"
Esse script é só de uma linha em Não confundam
Usei o echo -e
pra escrever a mensagem:
From: EU GMAIL <rafaelhenriqu@gmail.com> Subject: :) To: EU YAHOO <rafael_henriqu@yahoo.com.br> $(ifconfig) Subject = assunto to = destinatário from = remetente (pode configura lá no arquivo .msmtprc também) mensagem = $(ifconfig) pra me enviar o ip de uma em uma hora!
Usei o $ por que senão o echo
escreveria como texto e não como comando
ifconfig
dando a resposta dessa forma:
rafael@host$ echo -e (ifconfig) (ifconfig) rafael@host$ echo -e $(ifconfig) eth0 Encapsulamento do Link: Ethernet Endereço de HW 00:11:2F:E0:5A:AA inet end.: 192.168.0.1 Bcast:192.168.0.255 Masc:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) IRQ:185 Endereço de E/S:0xa000 lo Encapsulamento do Link: Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACK RUNNING MTU:16436 Métrica:1 pacotes RX:28569 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:28569 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:2131846 (2.0 MiB) TX bytes:2131846 (2.0 MiB) ppp0 Encapsulamento do Link: Protocolo Ponto-a-Ponto inet end.: 201.69.62.150 P-a-P:200.205.227.45 Masc:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1100 Métrica:1 pacotes RX:59255 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:57405 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:3 RX bytes:56574238 (53.9 MiB) TX bytes:4910467 (4.6 MiB)
*/1 * * * * rafael /home/rafael/wv.sh 1 * * * * rafael /home/rafael/mandarip.sh
O script wv.sh
conecta e reconecta o wvdial de um em um minuto.
O script mandarip.sh
manda o meu ifconfig de uma em uma hora.
Qualquer dúvida sobre o post: <rafaelhenriqu (a) gmail com>
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários