Autor Tópico: Enviar e-mails pelo Shell Script  (Lida 5326 vezes)

Offline Fabiana

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Enviar e-mails pelo Shell Script
« Online: 06 de Novembro de 2006, 16:59 »
Boa Tarde, gostaria de saber se vcs podem me ajudar!!!

Tenho um script para fazer , que é o seguinte!!

Tenho um arquivo de texto com o nome do administrador e usuarios, com senha e tudo mais, tenho que fazer um script a partir deste arquivo , porem tem uma parte no programa que não consigo fazer, é quando o professor pede para que de a opção de enviar um e-mail somente para o administrador ou para todo mundo. Não sei como separo isso, pois todos os dados estão em arquivo de texto separados somente por espaço!!

O modelo do arquivo é o seguinte !!!

01   durjcv01   bolpetti cgrippi jneves lcarlos rhudson ngerhard

Sendo que o Numero 01 é o numero da Filial
o Nome Durjcv01 é o nome do servidor
O seguinte é o do administrador e o restante são dos operadores.

E o arquivo tem 28 servidores e seus respectivos administradores e operadores

Então eu tenho que escolher o Servidor ( isso já fiz ) e depois dar a opção ao usuario se ele deseja enviar um e-mail, comunicando um erro por exemplo, somente para o Administrador ou para os operadores também!!!


[/quote]
« Última modificação: 07 de Novembro de 2006, 10:28 por Fabiana »

Offline AlexBR

  • Usuário Ubuntu
  • *
  • Mensagens: 388
    • Ver perfil
Re: Enviar e-mails pelo Shell Script
« Resposta #1 Online: 06 de Novembro de 2006, 19:05 »
Se o problema for apenas separar o e-mail do administrador dos outros, seria bom você colocar aqui um exemplo do teu arquivo de dados. Acho que não seria difícil fazer o que você quer.

Offline Fabiana

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Re: Enviar e-mails pelo Shell Script
« Resposta #2 Online: 07 de Novembro de 2006, 10:26 »
O modelo do arquivo é o seguinte !!!

01   durjcv01   bolpetti cgrippi jneves lcarlos rhudson ngerhard

Sendo que o Numero 01 é o numero da Filial
o Nome Durjcv01 é o nome do servidor
O seguinte é o do administrador e o restante são dos operadores.

E o arquivo tem 28 servidores e seus respectivos administradores e operadores

Então eu tenho que escolher o Servidor ( isso já fiz ) e depois dar a opção ao usuario se ele deseja enviar um e-mail, comunicando um erro por exemplo, somente para o Administrador ou para os operadores também!!!


Offline AlexBR

  • Usuário Ubuntu
  • *
  • Mensagens: 388
    • Ver perfil
Re: Enviar e-mails pelo Shell Script
« Resposta #3 Online: 07 de Novembro de 2006, 10:42 »
Olha... não sei se entendi bem o seu problema. Contudo, se você fizer algo como...

SERVER=$(echo "01   durjcv01   bolpetti cgrippi jneves lcarlos rhudson ngerhard " | awk '{print $2}')

Você pega o nome do servidor. (Claro, que o comando echo pode ser substituído por uma combinação de cat + grep).

Daí.. se você fizer algo como..

ADMIN=$(echo "01   durjcv01   bolpetti cgrippi jneves lcarlos rhudson ngerhard " | awk '{print $3}')

Você pega só o login do administrador. Podes fazer isso para os operadores também.

Bom... Pelo pouco de informação que foi passado, é só isso que posso ajudar. :-) Talvez outra pessoa dê uma dica mais atraente.

Boa sorte!


alarcon

  • Visitante
Re: Enviar e-mails pelo Shell Script
« Resposta #4 Online: 12 de Novembro de 2006, 17:33 »
Boa Tarde, gostaria de saber se vcs podem me ajudar!!!

Tenho um script para fazer , que é o seguinte!!

Tenho um arquivo de texto com o nome do administrador e usuarios, com senha e tudo mais, tenho que fazer um script a partir deste arquivo , porem tem uma parte no programa que não consigo fazer, é quando o professor pede para que de a opção de enviar um e-mail somente para o administrador ou para todo mundo. Não sei como separo isso, pois todos os dados estão em arquivo de texto separados somente por espaço!!

O modelo do arquivo é o seguinte !!!

01   durjcv01   bolpetti cgrippi jneves lcarlos rhudson ngerhard

Sendo que o Numero 01 é o numero da Filial
o Nome Durjcv01 é o nome do servidor
O seguinte é o do administrador e o restante são dos operadores.

E o arquivo tem 28 servidores e seus respectivos administradores e operadores

Então eu tenho que escolher o Servidor ( isso já fiz ) e depois dar a opção ao usuario se ele deseja enviar um e-mail, comunicando um erro por exemplo, somente para o Administrador ou para os operadores também!!!


[/quote]

digamos que vc tem um arquivo texto chamado arquivo.txt que tem várias linhas como esta que vc falou:

01   durjcv01   bolpetti cgrippi jneves lcarlos rhudson ngerhard

O comando usado para que ele leia este arquivo na linha 01 e só pegue o nome do administrador bolpetti seria assim:

cat arquivo.txt | grep "01" | cut -d' ' -f7

lembrando que o número 7 ( de -f7 ) é variável conforme o tamanho dos espaços dado por vc e que no meu teste aqui corresponde a este aí do exemplo.

Veja:

01   durjcv01   bolpetti cgrippi jneves lcarlos rhudson ngerhard
 1 23   4      56    7         8       9        10        11       12

Citar
para os comandos as rerspostas:

cat arquivo.txt | grep "01" | cut -d' ' -f1
01
cat arquivo.txt | grep "01" | cut -d' ' -f2

cat arquivo.txt | grep "01" | cut -d' ' -f3

cat arquivo.txt | grep "01" | cut -d' ' -f4
durjcv01
cat arquivo.txt | grep "01" | cut -d' ' -f5

cat arquivo.txt | grep "01" | cut -d' ' -f6

cat arquivo.txt | grep "01" | cut -d' ' -f7
bolpetti
cat arquivo.txt | grep "01" | cut -d' ' -f8
cgrippi
cat arquivo.txt | grep "01" | cut -d' ' -f9
jneves
cat arquivo.txt | grep "01" | cut -d' ' -f10
lcarlos
cat arquivo.txt | grep "01" | cut -d' ' -f11
rhudson
cat arquivo.txt | grep "01" | cut -d' ' -f12
ngerhard

Ou seja tudo vai depender dos espaços que são dados entre os nomes.