The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
hur man kan förebygga flera e-postmeddelanden från övervakning script si_linux Shell-programmering och Skript 2 06-07-2007 05:55
Försöker att läsa data flera gånger coachr Shell-programmering och Skript 1 12-14-2006 08:19
Försöker att läsa data flera gånger coachr Shell-programmering och Skript 0 12-06-2006 02:11
Låsa en fil när du använder VI för att förhindra flera redigera sessioner med diff användare Browser_ice AIX 14 11-23-2006 10:43
matchningsalternativ flera gånger på samma linje oldtrash Shell-programmering och Skript 2 04-28-2004 05: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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 11-14-2006
Sree_2503 Sree_2503 is offline
Registered User
  
 

Join Date: oktober 2006
Inlägg: 10
Förhindra filen från att skickas flera gånger från ett jobb

Vi har en ksh som går en gång var 15 minut. Baserat på ett visst villkor (för ogiltiga data) vi buffra en fil och om filen är en längd större än 0 byte, då är vi utskick denna fil till en grupp av användare. Efter att ha mottagit filen, användare korrigera uppgifterna så att det på nästa kör samma data inte är markerad och filen buffras blir 0 byte och är därför inte skickas över.
Men det mesta händer att användare tar mer än 15 minuter för att korrigera uppgifterna och därmed detta arbete skapar samma fil och post den till användning igen.

Vad jag letar efter, är det en disk logik som jag kan ställa och som tillåter mig att skicka filen bara en gång om det är större än 0 byte.

Bästa skulle vara - när filen skapats med mer än 0 byte för första gången kommer det att sändas endast en gång (det vill säga för första gången) och efter att säga, för nästa 2 timmar (vilket innebär 7 mer cykler) denna fil, även om det blir skapade aldrig kommer att skickas till alla.

Tack,
Sree
  #2 (permalänk)  
Old 11-14-2006
RTM's Avatar
RTM RTM is offline Forum Advisor  
Gult Hunter
  
 

Join Date: april 2002
Ort: På min motorcykel
Inlägg: 3039
Du kan, när du e-posta filen, flytta den till file.old och sedan i nästa körning, om det finns en file.old, jämför det med den nya filen som just gjort. Om de är lika, inte post it. Om de är olika, lägga till nya förändringar i file.old och skicka / mail de nya ändringarna och flytta sedan nytt till file.old. På detta sätt förlorar du ingen information som behöver rättas till, användarna kommer att få data som är nytt.

När du har en springa med några förändringar (noll byte), kan du ta bort file.old för framtida körningar.
  #3 (permalänk)  
Old 11-14-2006
Sree_2503 Sree_2503 is offline
Registered User
  
 

Join Date: oktober 2006
Inlägg: 10
Hej,

Tack RTM. Detta verkar vara den bästa lösningen hittills. Jag har designat flödet av algoritm baserad på denna lösning - Here It Goes --

Kod:
--*******************************************--
| 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:					|
---------------------------------------------------------
Men för att gå till höger, jag måste veta hur hittar jag om en fil skapas på dagen innan eller inte (dvs. på något sätt kan filen skapas timestamp hämtas och comapared mot dagens datum), om timestamp är den sista dagen, då skulle jag ta bort den gamla filen, annars behålla den.

Tack igen, RTM.

--
Sree
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:34.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0