Enviar e-mails pelo Shell Script

Iniciado por Fabiana, 06 de Novembro de 2006, 16:59

tópico anterior - próximo tópico

Fabiana

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]

AlexBR

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.

Fabiana

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!!!


AlexBR

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

Citação de: Fabiana 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]

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

Citarpara 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.