shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Script para monitorar a recepção de arquivos do p


From: Julio C. Neves
Subject: Re: [shell-script] Re: Script para monitorar a recepção de arquivos do proftp.
Date: Sun, 29 Jan 2012 21:29:57 -0200

Fala Jair,
assim fica mais fácil, acho que podemos ajudá-lo!

Primeiro umas dicas:
Não procurei entender muito o seu script (domingo às 21:00h é fogo!) :( Mas
vou dar umas dicas de shell:

Troque:
cat /comparacao/copiaxferlog |grep "b _ i" |grep "$1" |cut -f1,2,4,5,6,9,10
-d" " > /comparacao/clientes/"$1"

test -s /comparacao/clientes/"$1"
if [ $? = 0 ]
then
echo "$1"
mail -s "Arquivo novo no FTP" arquivosftp < /comparacao/clientes/"$1"
fi

por:
if var=$(grep "b _ i" /comparacao/copiaxferlog | grep "$1" |cut
-f1,2,4,5,6,9,10 -d" ")
then
echo "$1"
mail -s "Arquivo novo no FTP" arquivosftp < "$var"
fi

Já que vc está com vontade de aprender a programar em shell, lembre-se: *a
função do if não é testar condição. É testar o retorno de i n s t r u ç ã
o!*, que é o famigerado e incompreendido $?. Assim sendo o que vc mais vê
pela internet é "if [ $? = ..." que é uma bobagem que se perpetua pela rede.

e o cmd test tb é representado por [ ... ] assim sendo, qdo vc fez um test
e depois fez [ $? = 0 ] (que tb está errado, pq para test com numérico não
deveria ser = mas sim -eq), vc usou o cmd test 2 vezes e, como vc viu, não
usei nenhuma.

Para vc entender o cmd if e o test em sua plenitude, leia em 20 minutos o
texto que começa
aqui<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo003#Comandos_Condicionais>e
termina
aqui <http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004#O_Comando_test>.
Está em português, cheio de exemplos e mostra absolutamente tudo sobre o
tema.

Para evitar perder registros, abra uma thread para cada registro que
chegar, e isso vc consegue, a partir do bash 4.0, com o cmd coproc, que vc
pode ler aprender
aqui<https://wiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Coprocessos>.
Tb está em português e cheio de exemplos.

Espero que as dicas te ajudem, pois se vc está começando, o melhor é
estudar as coisas mais importantes, pq tenho certeza que qdo vc entender o
jeitão do shell, irá usá-lo direto, por ser uma excelente ferramenta.

Abcs,
Julio
*Já foi lançado "Bombando o
Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
". *
*Show **de interfaces gráficas sob Shell!*
*
*



Em 29 de janeiro de 2012 13:01, jairazambuja <address@hidden>escreveu:

> **
>
>
> Julio, não quero nada feito...
> Como este é meu primeiro post aqui no forum não sei como postar os
> arquivos para analise.
>
> Vou colocá-los aqui mesmo:
>
> Este script copia o log de transferencia e logo em seguida limpa ele,
> depois chama, para cada cliente, o script que faz a comparação
>
> #!/bin/sh
>
> cat /var/log/xferlog > /comparacao/copiaxferlog
> echo > /var/log/xferlog
>
> /comparacao/verificaarquivos1-9 clienteA
> /comparacao/verificaarquivos1-9 clienteB
> /comparacao/verificaarquivos1-9 clienteC
> Para cada cliente uma linha
>
> Este é o script que faz a comparação
>
> #!/bin/sh
>
> cat /comparacao/copiaxferlog |grep "b _ i" |grep "$1" |cut
> -f1,2,4,5,6,9,10 -d" " > /comparacao/clientes/"$1"
>
> test -s /comparacao/clientes/"$1"
> if [ $? = 0 ]
> then
> echo "$1"
> mail -s "Arquivo novo no FTP" arquivosftp < /comparacao/clientes/"$1"
> fi
>
> É um script de iniciante, mas foi o melhor que consegui fazer. Só que,
> devido ao grande fluxo de entrada de arquivos de ves em qunto escapa.
>
> []'s
>
> Jair
>
> --- Em address@hidden, "Julio C. Neves" <julio.neves@...>
> escreveu
> >
> > E vc quer que o pessoal da lista monte toda a rotina de recepção de ftp e
> > envio de e-mail ou prefere que te ajudemos a corrigir o que vc já fez?
> >
> > Abcs,
> > Julio
> > *Já foi lançado "Bombando o
> > Shell<
> http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666
> >
> > ". *
> > *Show **de interfaces gráficas sob Shell!*
> > *
> > *
> > > Ola a todo.
> > >
> > > Depois de muita pesquisa na Internet e em todo o histórico do grupo não
> > > encontrei nada que possa me ajudar.
> > >
> > > O que preciso é o seguinte:
> > > Aqui na empresa recebemos arquivos dos clientes, em média de 400 a 500
> por
> > > dia, preciso monitorar meu servidor de ftp para saber qual o
> > > usuário(cliente) que enviou o arquivo, data, hora e nome do arquivo,
> logo a
> > > seguir enviar um e-mail para quem administra os arquivos, comunicando
> que o
> > > cliente tal enviou o arquivo X.
> > >
> > > Atualmente faço o monitoramento do log de transferência, mas como o
> fluxo
> > > é muito grande as vezes escapa um o outro arquivo.
> > >
> > > Uso o Slackware 13 64b e o servidor de ftp é o proftp.
> > >
> > > Se alquém puder ajudar, desde já agradeço.
> > >
> > >
> > >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]