Faz um tempo que não posto nada aqui no blog, pois estava adaptando-me a algumas mudanças, que não eram tão esperadas, mas não foram, de um todo, ruins. Vou tentar não entrar muito nesses detalhes e ir mais direto ao que interessa, que é o assunto do tópico.
Dentro do período de duas semanas, fui dispensado do meu trabalho e fui selecionado para trabalhar em outra empresa, aconteceu tudo muito rápido. Já aqui na nova empresa, começo a observar algumas necessidades e algumas coisas que posso tentar melhorar.
Fazendo atendimento a uma ilha Apple (Protools), que é uma ilha para sonorização, o operador informou que o volume da rede, chamado de "Online", perdia conexão frequentemente. Nos testes feitos por mim não apresentava o dito problema, foi então que pensei em escrever um script "dedo duro", ou seja, que envia-se um e-mail à equipe do suporte em caso do "Online" cair.
Abaixo segue o script desenvolvido em AppleScript
(*
Script: informa.scpt
Objetivo: Envia uma mensagem por e-mail ao administrador da rede caso o volume Online fique offline.
Autor: Alex Souza Marques
*)
set Destinatario to "Destinatario" (*Nome do Administrador da Rede*)
set Endereco to "destinatario@server.ogr.br" (*E-Mail do Destinatário*)
set assunto to "Online Offline" (*Assunto do E-Mail*)
repeat
if (list disks) does not contain "Online" then
try
mount volume "afp://10.2.33.15" (*Aqui Fica o Endereco do Volume Online*)
on error
tell application "Mail"
set msg to "Online Offline at: " & (time string of (current date))
set theMessage to make new outgoing message with properties {subject:assunto,content:msg,visible:true}
tell theMessage
make new to recipient with properties {name:Destinatario,adress:Endereco}
send
end tell
end tell
end try
delay 300 (*Delay em Segundos*)
else
delay 60 (*Delay em Segundos*)
end ifend repeat
Resumindo, o script primeiro testa se o volume "Online" está conectado, se não estiver ele tenta montar o volume.
Em caso de sucesso, ele refaz esse passo a cada 60 segundos, para continuar testando a conexão.
Em caso de erro, ele envia uma mensagem de erro por e-mail usando o aplicativo Mail.app, depois espera mais 300 segundos e tenta acessar o online denovo.
Foi exportado o script com aplicação (informa.app) e colocado nos itens de iniciação do usuário, adicionado a conta de e-mail do usuário no aplicativo Mail.app, pois é essa conta que será usada pelo programa para enviar as mensagens para os administradores da rede.
O programa funcionou perfeitamente, mas sugiro uma pequena modificação, que é impor um limite para a quantidade de e-mails que o programa irá enviar no caso de problema. Senão a caixa de entrada do e-mail destinatário irá ficar atolada de mensagens.
Foi desenvolvido o seguinte algoritmo para implementação desta alteração:
Basta adicionar um contador e criar um critério para interromper o repeat. No meu exemplo o loop é interrompido quando ocorre 20 erros, e uma mensagem irá aparecer na tela no usuário dizendo para ele ligar para o suporte.
...
set count to 0
Dentro do período de duas semanas, fui dispensado do meu trabalho e fui selecionado para trabalhar em outra empresa, aconteceu tudo muito rápido. Já aqui na nova empresa, começo a observar algumas necessidades e algumas coisas que posso tentar melhorar.
Fazendo atendimento a uma ilha Apple (Protools), que é uma ilha para sonorização, o operador informou que o volume da rede, chamado de "Online", perdia conexão frequentemente. Nos testes feitos por mim não apresentava o dito problema, foi então que pensei em escrever um script "dedo duro", ou seja, que envia-se um e-mail à equipe do suporte em caso do "Online" cair.
Abaixo segue o script desenvolvido em AppleScript
(*
Script: informa.scpt
Objetivo: Envia uma mensagem por e-mail ao administrador da rede caso o volume Online fique offline.
Autor: Alex Souza Marques
*)
set Destinatario to "Destinatario" (*Nome do Administrador da Rede*)
set Endereco to "destinatario@server.ogr.br" (*E-Mail do Destinatário*)
set assunto to "Online Offline" (*Assunto do E-Mail*)
repeat
if (list disks) does not contain "Online" then
try
mount volume "afp://10.2.33.15" (*Aqui Fica o Endereco do Volume Online*)
on error
tell application "Mail"
set msg to "Online Offline at: " & (time string of (current date))
set theMessage to make new outgoing message with properties {subject:assunto,content:msg,visible:true}
tell theMessage
make new to recipient with properties {name:Destinatario,adress:Endereco}
send
end tell
end tell
end try
delay 300 (*Delay em Segundos*)
else
delay 60 (*Delay em Segundos*)
end ifend repeat
Resumindo, o script primeiro testa se o volume "Online" está conectado, se não estiver ele tenta montar o volume.
Em caso de sucesso, ele refaz esse passo a cada 60 segundos, para continuar testando a conexão.
Em caso de erro, ele envia uma mensagem de erro por e-mail usando o aplicativo Mail.app, depois espera mais 300 segundos e tenta acessar o online denovo.
Foi exportado o script com aplicação (informa.app) e colocado nos itens de iniciação do usuário, adicionado a conta de e-mail do usuário no aplicativo Mail.app, pois é essa conta que será usada pelo programa para enviar as mensagens para os administradores da rede.
O programa funcionou perfeitamente, mas sugiro uma pequena modificação, que é impor um limite para a quantidade de e-mails que o programa irá enviar no caso de problema. Senão a caixa de entrada do e-mail destinatário irá ficar atolada de mensagens.
Foi desenvolvido o seguinte algoritmo para implementação desta alteração:
...
set count to 0
...
set count to count + 1
...
if count = 20 then
break
...
display dialog "Call 6500" (*Ramal do Suporte*)
...
if count = 20 then
break
...
display dialog "Call 6500" (*Ramal do Suporte*)
É isso! Aos poucos estou adaptando-me a uma nova rotina e espero agora voltar a compartilhar, pelo menos uma vez por semana, alguma experiência minha aqui no Warlex.
Comentários
Postar um comentário