![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Anmodning om at ændre script til at liste flere parametre for V_fieldid variable | Sammy | Shell Programmering og Scripting | 0 | 03-30-2008 08:08 PM |
| dræbe flere forekomster af det samme program | ipzig | Shell Programmering og Scripting | 12 | 12-17-2007 02:42 AM |
| Perl program til at læse fra flere filer | jyotipg | Shell Programmering og Scripting | 1 | 07-19-2006 09:26 PM |
| kører et program for et bestemt tidsrum | prosputko | Højtstående Programmering | 3 | 07-06-2005 01:39 PM |
| tid ur-program | Ben070371 | UNIX for dummyer Spørgsmål & svar | 5 | 12-05-2003 07:57 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Hej,
Jeg fik et script, der sender e-mail til brugeren baseret på en række variabler, der modtages fra Tivoli server overvågning 6.1. Nu at holde styr på de mails jeg har skrevet en lagret procedure i DB2 som vi bruger DB2 UDB som back-end, der tager de variabler, der blev brugt til at sende post og opbevar den i tabellen. Jeg ringer denne butik procedure fra en Shell-program og for hver mail er sendt via scriptet jeg kalder tanken programmet ved at videregive de variabler, der bruges til at sende mails, som igen er gået til DB2 lagret procedure. Jeg har også en log fil, der gemmer tidsstempel og andre oplysninger af alle mails, der blev sendt. Det er arbejder helt fint. Men mit problem er når jeg er overensstemmelse mellem data fra DB og de data, der i logfilen min BF har altid et mindre antal i forhold til logfilen. Jeg er sikker på logfilen er ikke at have nogen dubletter. Når jeg sammenlignede logfilen data og data i databasen fandt jeg, at hvis flere anmodning kommer på samme tid, shell program ikke er i stand til at behandle dem alle. Det er, hvis jeg får 5 hits på samme tid shell fil kan kun behandle 1 ansøgning eller max 2 eller 3 anmoder om det er faldende andre 3 eller 2 hits. Hvordan kan jeg løse dette. Hvordan kan jeg få min shell program behandle flere ansøgninger. Thanks in advance. Hilsen Praveen |
|
||||
|
Hi koden er som følgende #! / bin / sh # Workdir \u003d 'X: / Tivoli/bin/w32-ix86/TME/TEC/TCS_ACTIVE/TECTASK' email_id \u003d `perl X: / Tivoli/bin/w32-ix86/TME/TEC/TCS_ACTIVE/TECTASK/ip_mail.pl $ hostname ` echo "| $ email_id | \ n" # echo "| $ filial | \ n" # echo "| $ location | \ n" branch \u003d `echo $ email_id | cut-d" "-f 1` location \u003d `echo $ email_id | cut-d" "-f 2« email \u003d `echo $ email_id | cut-d" "-f 3` to_email_id \u003d `echo $ email | cut-d": "-f 1` cc_email_id \u003d `echo $ email | cut-d": "-f 2« alias_name \u003d `echo $ email | cut-d": "-f 3` AT \u003d $ to_email_id CC \u003d $ cc_email_id MAIL_MESSAGE \u003d " Kære Administrator, \ n Tivoli Monitoring begivenheden modtaget med følgende oplysninger: \ n \ n Hostname: $ hostname \ n IP_Address: $ oprindelse \ n SITUATION: $ situation_name \ n Severity: $ sværhedsgrad \ n Årsag: $ situation_displayitem \ n Forekomst: $ situation_time \ n \ n De nærmere oplysninger om begivenheden er som følger: \ n \ n Message: The Logical Volume $ situation_displayitem på serveren $ hostname er $ pct__used% fuld. I øjeblikket er ledig plads er $ free_megabytes MB. \ N \ n For at se den aktuelle status for serveren, logge på \ n http://XX.XX.XX.XX///cnp/kdh/lib/cnp.html \ n Bemærk: Dette er en automatisk genereret e-mail, skal du ikke svare tilbage. \ N I tilfælde af spørgsmål bedes du kontakte de lokale Tivoli koordinatorer. \ N \ n \ n Subject \u003d "The Situation $ situation_name udløst på serveren $ hostname" X \u003d "$ (X: / sendEmail-f tivoli.monitoring @ tcs.com -t $ TO-CC $ CC-u $ subject-m "$ MAIL_MESSAGE"-s xx.xx.xx.xx) " echo "$ filial; $ location; $ hostname, $ situation_name; $ X $ TIL">> X: / mail.log echo "$ filial; $ location; $ hostname, $ situation_name, $ timestamp; $ msg, $ to, $ X">> X: / event.log X: / count / disk_mail.sh $ cms_hostname $ situation_name $ situation_origin $ oprindelse $ adapter_host $ timestamp $ to $ CC Den sidste linje med fed skrift er, hvor jeg ringer til DB2 lagrede procedure fra skallen fil disk_mail.sh. Alle ovenstående kode er ment til at sende e-mail baseret på de parametre recived fra Tivoli. DB2 lagret procedure er inde X: / count / disk_mail.sh og dette har følgende kode. db2cmd / w / i <<EOF echo "------------------------------------------------ -------------------------------------------------- ------">> "X: / rapporter / track_disk.txt" DB2 forbindelse til XXXX Bruger XXXX hjælp XXXX DB2 opkald ITMUSER.MAIL_TRACK_SP ( '$ 1', '$ 2', '$ 3', current_timestamp, '$ 4', '$ 5', '$ 6', '$ 7', '$ 8')>> "X: / rapporter / track_disk. txt " EOF echo "indsættes værdier med succes $ 2 $ 3">> "X: / rapporter / track_disk.txt" echo "------------------------------------------------ -------------------------------------------------- -------">> "X: / rapporter / track_disk.txt" |
|
||||
|
Jeg er ikke bekendt med DB2, Men hvis det ikke giver dig mulighed for at køre flere db2cmd forekomster på samme tid, bliver du nødt til at serialiserer dem en eller anden måde. En almindelig teknik er at skabe en "lock" fil i en delt placering, og fjerne det når du er færdig. Hvis filen allerede findes, når du ønsker at oprette det, tilbage fra (måske sove i et par sekunder), og prøv igen senere. Hvordan præcist at oprette en låsefil sikkert afhænger af din platform osv., men google rundt efter "lock-fil". Hvis du har Procmail, det kommer med en lockfile nytte. Måske DB2 allerede har noget lignende, faktisk.
(Jeg troede databaser skulle løse dette problem, selv om. Du kan ikke tillade samtidig skriver til den samme post, men nogle databaser giver dig mulighed for at låse blot record (s), du vil skrive til, og lade en anden proces at skrive til andre poster på samme tid. Googling for DB2-lås bringer nogle vagt lovende links.) PS. Du vil måske gå tilbage og redigere de levende e-mail-link til din Tivoli admin konto. Jeg forestiller mig, du ikke ønsker, at den kan begynde at modtage spam (måske er det for sent allerede) |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|