![]() |
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.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
| Begäran att ändra skriptet att lista flera parametrar för V_fieldid rörliga | Sammy | Shell-programmering och Skript | 0 | 03-30-2008 09:08 |
| döda flera instanser av samma program | ipzig | Shell-programmering och Skript | 12 | 12-17-2007 02:42 |
| Perl-program för att läsa från flera filer | jyotipg | Shell-programmering och Skript | 1 | 07-19-2006 10:26 |
| köra ett program för en viss tid | prosputko | High Level Programming | 3 | 07-06-2005 02:39 |
| temne klockan program | Ben070371 | UNIX for Dummies Frågor & Svar | 5 | 12-05-2003 07:57 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Hej,
Jag har ett script som skickar e-post till användare baserat på vissa variabler från Tivoli Monitoring Server 6.1. Nu att hålla koll på de brev jag skrev en lagrad procedur i DB2 som vi använder DB2 UDB som bakdelen som tar de variabler som användes för att skicka e-post och förvara den i tabellen. Jag ringer denna butik förfarande från ett skal-program och för varje post skickas via script jag kallar skal-programmet genom att skicka variabler som används för att skicka post, vilket i sin tur skickas till DB2 stored procedure. Jag har även en loggfil som lagrar timestamp och annan information av alla mail som har skickats. Det fungerar perfekt böter. Men mitt problem är när jag stämmer uppgifterna från DB och data i loggfilen mitt BF alltid ha ett mindre antal i förhållande till loggfilen. Jag är säker på att loggfilen inte har några dubbletter. När jag jämförde data loggfilen och data i databasen Jag upptäckte att om flera begäran är på väg på samma gång är tanken program inte behandla dem alla. Det är om jag får 5 förfrågningar om samtidigt skal fil kan bara behandla 1 begära eller max 2 eller 3 begär det blir sämre andra 3 eller 2 förfrågningar. Hur fixar jag detta. Hur kan jag göra mitt skal program bearbeta flera förfrågningar. Tack på förhand. Hälsningar Praveen |
|
||||
|
Hej koden är följande #! / 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 "| $ plats | \ 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 $ e | cut-d": "-f 1` cc_email_id \u003d `echo $ e | cut-d": "-f 2` alias_name \u003d `echo $ e | cut-d": "-f 3` TO \u003d $ to_email_id CC \u003d $ cc_email_id MAIL_MESSAGE \u003d " Kära Administrator, \ n Tivoli Monitoring Evenemanget fick med följande information: \ n \ n Värdnamn: $ hostname \ n Ip_address: $ ursprung \ n SITUATION: $ situation_name \ n Severity: $ svårighetsgrad \ n Orsak: $ situation_displayitem \ n Förekomst: $ situation_time \ n \ n Närmare detaljer om händelsen är följande: \ n \ n Meddelande: The Logical Volume $ situation_displayitem på servern $ värdnamnet $ pct__used% full. Närvarande det fria utrymmet är $ free_megabytes MB. \ N \ n Att visa aktuell status på servern, loggar in på \ n http://XX.XX.XX.XX///cnp/kdh/lib/cnp.html \ n Obs: Detta är en auto skapade svar du inte svara tillbaka. \ N Vid eventuella frågor kontakta lokala Tivoli samordnarna. \ N \ n \ n Subject \u003d "Situationen $ situation_name utlöses på servern $ 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 $ till">> X: / mail.log echo "$ filial, $ location, $ hostname, $ situation_name, $ timestamp, $ msg, $ till, $ X">> X: / event.log X: / count / disk_mail.sh $ cms_hostname $ situation_name $ situation_origin $ ursprung $ adapter_host $ timestamp $ till $ CC Den sista raden i fetstil är där jag uppmanar DB2 lagrade proceduren från skalet fil disk_mail.sh. Alla ovanstående kod är menad för att skicka e-post baserat på de parametrar som fick ta emot från Tivoli. DB2 lagrade procedur är inne i X: / count / disk_mail.sh och detta har följande kod. db2cmd / w / i <<EOF echo "------------------------------------------------ -------------------------------------------------- ------">> "X: / reports / track_disk.txt" DB2 ansluta till XXXX Användare XXXX med XXXX DB2 samtal ITMUSER.MAIL_TRACK_SP ( '$ 1', '$ 2', '$ 3', current_timestamp, '$ 4', '$ 5', '$ 6', '$ 7', '$ 8')>> "X: / reports / track_disk. txt " EOF echo "inmatade värden framgångsrikt $ 2 $ 3">> "X: / reports / track_disk.txt" echo "------------------------------------------------ -------------------------------------------------- -------">> "X: / reports / track_disk.txt" |
|
||||
|
Jag är inte bekant med DB2, Men om det inte är så att du kan köra flera db2cmd instanser på samma gång, måste du serialize dem på något sätt. En vanlig teknik är att skapa ett "lås"-fil på en delad plats, och ta bort det när du är färdig. Om filen redan finns när du vill skapa den, backa (kanske sova i några sekunder) och försök igen senare. Hur exakt för att skapa en lås-fil säkert beror på din plattform etc, men Google omkring för "lock file". Om du har Procmail, kommer det med en LockFile utility. Kanske DB2 redan har något liknande, faktiskt.
(Jag trodde databaser var tvungen att lösa detta problem, though. Du kan inte tillåta samtidig skriver till samma post men vissa databaser kan du låsa den rad (er) du vill skriva till, och låta en annan process att skriva till andra uppgifter på samma gång. Googla för DB2 lås tar upp något vagt lovande länkar.) PS. Du kanske vill gå tillbaka och redigera de levande e-post länk till din Tivoli administratörskonto. Jag antar att ni inte vill för att börja ta emot spam (kanske det är för sent redan) |