![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Richiesta di modificare lo script alla lista più parametri per V_fieldid variabile | Sammy | Shell scripting e di programmazione | 0 | 03-30-2008 09:08 PM |
| uccidere più istanze dello stesso programma | ipzig | Shell scripting e di programmazione | 12 | 12-17-2007 02:42 AM |
| Programma Perl di leggere da più file | jyotipg | Shell scripting e di programmazione | 1 | 07-19-2006 10:26 PM |
| in esecuzione di un programma per un determinato periodo di tempo | prosputko | Di programmazione ad alto livello | 3 | 07-06-2005 02:39 PM |
| orologio in tempo programma | Ben070371 | UNIX for Dummies Domande & Risposte | 5 | 12-05-2003 07:57 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Salve,
Ho uno script che invia le e-mail per l'utente sulla base di alcune variabili ricevute da Tivoli Monitoring Server 6.1. Ora per tenere traccia delle mail che ho scritto una stored procedure in DB2 come usiamo DB2 UDB come back-end, che prende le variabili che sono stati utilizzati per inviare la posta e conservarlo nella tabella. Chiedo questo negozio da una procedura di Shell programma e per ogni mail inviata utilizzando lo script della shell i chiamata programma passando le variabili che viene utilizzata per inviare la mail, che a sua volta viene passato a DB2 stored procedure. Ho anche un file di log che memorizza data e ora e altre informazioni di tutte le mail che sono stati inviati correttamente. E 'perfettamente funzionante bene. Ma il mio problema è quando la corrispondenza tra i dati dal DB e dei dati in file di log il mio PB hanno sempre un numero minore rispetto al file di log. Sono certo che il file di log è non avere alcun duplicati. Quando ho confrontato il file di log dei dati e dei dati del database ho trovato che, se richiesta, sono più prossimi al tempo stesso, shell programma non è in grado di elaborare tutti. Questo è se mi 5 richieste allo stesso tempo file di shell è in grado di elaborare solo 1 richiesta o massimo 2 o 3 richiesta è caduta altri 2 o 3 domande. Come faccio a risolvere questo problema. Come posso fare in modo che il mio programma di shell processo richieste multiple. Grazie in anticipo. Saluti Praveen |
|
||||
|
Ciao il codice è il seguente #! / 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 "| $ succursale | \ n" # echo "| $ località | \ n" filiale \u003d `echo $ email_id | cut-d" "-f 1` location \u003d `echo $ email_id | cut-d" "-f 2` e-mail \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` A \u003d $ to_email_id CC \u003d $ cc_email_id MAIL_MESSAGE \u003d " Cari amministratore \ n Tivoli Monitoring evento ha ricevuto le seguenti informazioni: \ n \ n NomeHost: $ host \ n Indirizzo_IP: $ origine \ n SITUAZIONE: $ situation_name \ n Gravità: la gravità $ \ n Causa: situation_displayitem $ \ n Ricorrenza: $ situation_time \ n \ n I dettagli della manifestazione sono le seguenti: \ n \ n Messaggio: Il volume logico $ situation_displayitem sul server host è $ $ pct__used% pieno. Attualmente lo spazio libero è di $ free_megabytes MB. \ N \ n Per visualizzare lo stato corrente del server, accedere a \ n http://XX.XX.XX.XX///cnp/kdh/lib/cnp.html \ n Nota: Questa è una e-mail generata automaticamente si prega di non rispondere di nuovo. \ N In caso di richieste si prega di contattare i coordinatori locali di Tivoli. \ N \ n \ n Subject \u003d "La situazione situation_name $ attivato sul server $ host" X \u003d "$ (X: / SendEmail-f tivoli.monitoring @ tcs.com -A-t $ cc $ CC-u $ OGGETTO-m "$ MAIL_MESSAGE"-s XX.XX.XX.XX) " echo "$ succursale; $ location; $ hostname; $ situation_name; $ X $ A">> X: / mail.log echo "$ succursale; $ location; $ hostname; $ situation_name; $ timestamp; $ msg; $ a, $ x">> X: / event.log X: / contare / disk_mail.sh cms_hostname $ $ $ situation_name origine situation_origin $ $ $ $ timestamp adapter_host a $ CC L'ultima riga in grassetto è dove sono io db2 chiamando la stored procedure dalla shell disk_mail.sh file. Tutto il codice sopra è zione per l'invio di e-mail basati su parametri ricevuto da Tivoli. Db2 stored procedure è all'interno di X: / contare / disk_mail.sh e questo è il codice riportato di seguito. db2cmd / w / i <<EOF echo "------------------------------------------------ -------------------------------------------------- ------">> "X: / relazioni / track_disk.txt" db2 connettere l'utente a XXXX XXXX XXXX utilizzando db2 chiamata ITMUSER.MAIL_TRACK_SP ( '$ 1', '$ 2', '$ 3', current_timestamp, '$ 4', '$ 5', '$ 6', '$ 7', '$ 8')>> "X: / relazioni / track_disk. txt " EOF echo "valori inseriti con successo $ 2 $ 3">> "X: / relazioni / track_disk.txt" echo "------------------------------------------------ -------------------------------------------------- -------">> "X: / relazioni / track_disk.txt" |
|
||||
|
Io non sono a conoscenza db2, Ma se non è che vi permette di eseguire più db2cmd casi, al tempo stesso, si dovrà in qualche modo li serialize. Una tecnica comune è quello di creare un "blocco" il file in una posizione condivisa, e rimuoverlo quando si è terminato. Se il file esiste già, quando si desidera creare, passo indietro (forse il sonno per qualche secondo) e di riprovare più tardi. Come funziona esattamente la creazione di un file di lock in sicurezza dipende dalla vostra piattaforma, ecc, ma nei pressi di google per "bloccare il file". Se si dispone di Procmail, si tratta di un lockfile utilità. Forse db2 è già qualcosa di simile, in realtà.
(I dati sono stati pensiero suppone di risolvere questo problema, però. Non è possibile consentire al concorrente scrive lo stesso record, ma alcune banche dati permettono di bloccare solo il record (s) che si desidera scrivere, e consentire a un altro processo a cui scrivere altri documenti nello stesso momento. Googling per db2 blocco porta un po 'vagamente promettenti link.) PS. Ti suggeriamo di tornare indietro e modificare le e-mail live link al vostro account amministratore Tivoli. Immagino che lei non vorrebbe che per iniziare a ricevere spam (forse è già troppo tardi) |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|