The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
como prevenir várias notificações por e-mail de acompanhamento script si_linux Programação Shell Script e 2 06-07-2007 06:55
Tentar ler os dados várias vezes coachr Programação Shell Script e 1 12-14-2006 08:19
Tentar ler os dados várias vezes coachr Programação Shell Script e 0 12-06-2006 02:11
Bloqueando um arquivo quando se usa para evitar a VI edição múltiplas sessões pelos usuários diff Browser_ice AIX 14 11-23-2006 10:43
combinando várias vezes na mesma linha oldtrash Programação Shell Script e 2 04-28-2004 06:57

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-14-2006
Sree_2503 Sree_2503 is offline
Usuário
  
 

Join Date: Oct 2006
Lugares: 10
Impedir a partir de arquivo a ser enviado várias vezes a partir de um trabalho

Temos um ksh que corre uma vez a cada 15 minutos. Baseada em um determinado estado (para dados inválidos) estamos spooling um arquivo e se o arquivo é de tamanho maior que 0 bytes, então estamos a mailing este arquivo para um grupo de usuários. Após receber o arquivo, os usuários corrigir os dados de modo que em sua próxima execute os mesmos dados não for selecionado e se torna o arquivo spool 0 bytes e, portanto, não é enviado todo.
Mas, isso acontece principalmente os usuários que consomem mais de 15 minutos para corrigir os dados e, portanto, este trabalho cria o mesmo arquivo e correio electrónico utiliza-lo para o novo.

O que eu estou procurando, há uma contradição lógica que pode definir e que vai permitir-me enviar o arquivo de uma só vez é maior que 0 bytes.

Melhor seria - uma vez que o arquivo é criado com mais de 0 bytes para o primeiro tempo, será enviada uma única vez (ou seja, pela primeira vez) e depois que, digamos, para os próximos 2 horas (o que implica mais 7 ciclos) , esse arquivo, mesmo que se criou nunca será enviado a todos.

Obrigado,
Sree
  #2 (permalink)  
Old 11-14-2006
RTM's Avatar
RTM RTM is offline Forum Advisor  
Hog Hunter
  
 

Join Date: Apr 2002
Localização: Na minha moto
Posts: 3.039
Você poderia, se você enviar os arquivos, movê-lo para file.old e, em seguida, na próxima execução, se houver uma file.old, compará-lo ao novo arquivo que está sendo feito apenas. Se eles são os mesmos, não envie por correio. Se eles forem diferentes, adicione as novas alterações ao file.old e enviar / e-mail as novas alterações e, em seguida, mova o novo para um file.old. Dessa forma, você não perderá nenhuma informação que precisa ser corrigido, os usuários serão obtendo dados que é novo.

Uma vez que você executar um sem alterações (zero bytes), você pode remover file.old para futuras execuções.
  #3 (permalink)  
Old 11-14-2006
Sree_2503 Sree_2503 is offline
Usuário
  
 

Join Date: Oct 2006
Lugares: 10
Oi,

Graças RTM. Esta parece ser a melhor solução até agora. Tenho desenhado o fluxo do algoritmo baseado nesta solução - aqui vai --

Código:
--*******************************************--
| Non-Repeating Mailing Logic in the program: |
--*******************************************--

---------------------------------------------------------
|BEGIN PROCESSING BLOCK:				|
---------------------------------------------------------


Check for existence of File A_Old created on the previous day.
 
 If File A_Old was created on the previous day, then
 
    Remove File A_Old.
 
 Else, 

1. Create File A.

If File A > 0 bytes, then

   2. Check whether File A_Old exists or not.
   
   If File A_Old does not exist, then     -- (this implies this is the first time mailing process)
   
   2a(i). Copy File A to File A_Old.
   2a(ii). Mail File A to the users.
   2a(iii). Remove File A.
   
   If File A_Old does exist, then      -- (this implies we might have already mailed the Rejects file)
   
   2b. Compare File A with File A_Old.
   
       If both the files are the same, then
       
       2b(i). Skip Mailing process.
       
       If the files are different, then
       
       2b(ii). Copy File A to File A_Old.
       2b(iii).Mail File A.
       2b(iv). Remove File A.

If File A = 0 bytes, then

   Skip entire mailing process.
   
---------------------------------------------------------
|END PROCESSING BLOCK:					|
---------------------------------------------------------
No entanto, para isso dar certo, eu preciso de saber como posso descobrir se um arquivo é criado, no dia anterior ou não (ou seja, de forma alguma, a criação do ficheiro timestamp podem ser recuperados e comapared contra a data actual), se a hora é do último dia, então eu seria apagar o ficheiro antigo, caso contrário, mantê-la.

Obrigado novamente, RTM.

--
Sree
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 06:46.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0