![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Demande de modifier le script à la liste des paramètres multiples pour V_fieldid variable | Sammy | De programmation et de script Shell | 0 | 03-30-2008 09:08 PM |
| tuer plusieurs instances du même programme | ipzig | De programmation et de script Shell | 12 | 12-17-2007 02:42 AM |
| Perl programme de lecture à partir de plusieurs fichiers | jyotipg | De programmation et de script Shell | 1 | 07-19-2006 10:26 PM |
| l'exécution d'un programme d'un laps de temps | prosputko | High Level Programming | 3 | 07-06-2005 02:39 PM |
| programme d'horloge | Ben070371 | UNIX pour les nuls Questions et réponses | 5 | 12-05-2003 07:57 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Salut,
J'ai reçu un script qui envoie le courriel à l'utilisateur sur la base de certains variables reçues de Tivoli Monitoring Server 6.1. Maintenant, pour garder une trace des mails que j'ai écrit une procédure stockée dans DB2 en tant que nous utilisons DB2 UDB en arrière qui prennent les variables qui ont été utilisés pour envoyer le mail et les stocker dans la table. Je fais appel de cette procédure à partir d'un magasin Shell programme et pour chaque mail envoyé à l'aide du script shell i appeler le programme en passant par les variables qui sont utilisées pour envoyer des mails, qui à son tour est passé à la procédure stockée DB2. J'ai également un fichier journal qui va stocker les informations d'horodatage et d'autres de tous les mails qui ont été transmises avec succès. Il fonctionne parfaitement bien. Mais mon problème est quand je décompte les données de la DB et les données dans le fichier journal de ma DB ont toujours un nombre moins élevé par rapport au fichier de log. Je suis sûr que le fichier de log est de ne pas avoir de doublons. Quand j'ai comparé les données d'un fichier de log et de données dans la base de données, j'ai constaté que si plusieurs se demande dans le même temps, programme shell n'est pas en mesure de traiter l'ensemble d'entre eux. C'est si je reçois 5 requêtes en même temps le fichier shell est seulement en mesure de processus de demande 1 ou 2 ou 3 max demande est en baisse de 3 ou 2 d'autres demandes. Comment puis-je résoudre ce problème. Comment puis-je faire de mon programme shell processus multiples demandes. Merci d'avance. Observe Praveen |
|
||||
|
Salut le code est le suivant #! / 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 "| $ location | \ n" branche \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` A \u003d $ to_email_id CC \u003d $ cc_email_id MAIL_MESSAGE \u003d " Cher administrateur, \ n Tivoli Monitoring événement a reçu les informations suivantes: \ n \ n HostName: $ hostname \ n Adresse_IP: $ origine \ n SITUATION: $ situation_name \ n Severity: $ gravité \ n Cause: $ situation_displayitem \ n Occurrence: $ situation_time \ n \ n Les détails de l'événement sont les suivantes: \ n \ n Message: volume logique situation_displayitem $ sur le serveur hôte est de $ $% pct__used plein. Actuellement, l'espace libre est de $ free_megabytes MB. \ N \ n Pour afficher l'état du serveur, connectez-vous sur \ n http://XX.XX.XX.XX///cnp/kdh/lib/cnp.html \ n Note: Il s'agit d'un courrier électronique généré automatiquement s'il vous plaît ne répondez pas de retour. \ N En cas de questions s'il vous plaît communiquer avec les coordonnateurs locaux de Tivoli. \ N \ n \ n Subject \u003d "La situation situation_name $ déclenché sur le serveur $ hostname" X \u003d "$ (X: / SendEmail-f tivoli.monitoring @ tcs.com A-t $ $ CC-cc-u $ subject-m "$ MAIL_MESSAGE"-s XX.XX.XX.XX) " echo "$ branche $ location; $ hostname; situation_name $ $ X $ A">> X: / mail.log echo "$ branche $ location; $ hostname, $ situation_name; $ timestamp; $ msg, $ A $ X">> X: / event.log X: / compte / disk_mail.sh cms_hostname $ $ $ situation_name origine situation_origin $ $ $ timestamp adapter_host $ A $ CC La dernière ligne en gras est l'endroit où je suis db2 appelant la procédure stockée à partir du shell fichier disk_mail.sh. Tout le code ci-dessus est ment pour l'envoi de l'e-mail sur la base de paramètres de recived Tivoli. Db2 procédure stockée se trouve dans X: / compte / disk_mail.sh ce qui a le code suivant. db2cmd / w / i <<EOF echo "------------------------------------------------ -------------------------------------------------- ------">> "X: / reports / track_disk.txt" db2 connecter à l'aide de XXXX XXXX XXXX utilisateur db2 appel ITMUSER.MAIL_TRACK_SP ( '$ 1', '$ 2', '$ 3', current_timestamp, '$ 4', '$ 5', '$ 6', '$ 7', '$ 8')>> "X: / reports / track_disk. txt " EOF echo "inséré avec succès les valeurs $ 2 $ 3">> "X: / reports / track_disk.txt" echo "------------------------------------------------ -------------------------------------------------- -------">> "X: / reports / track_disk.txt" |
|
||||
|
Je ne suis pas familier avec db2, Mais si ce n'est pas ce qui vous permet d'exécuter plusieurs db2cmd cas, dans le même temps, vous aurez de sérialisation d'une autre. Une technique est de créer un "verrouillage" des fichiers dans un emplacement partagé, et retirez-la lorsque vous avez terminé. Si le fichier existe déjà lorsque vous souhaitez créer, marche arrière (peut-être dormir pendant quelques secondes) et de réessayer plus tard. Comment créer un fichier de verrouillage sécurité dépend de votre plate-forme, etc, mais autour de google pour "verrou". Si vous avez Procmail, il est livré avec un fichier de verrouillage utilité. Peut-être db2 a déjà quelque chose de semblable, en fait.
(Je pensais que les bases de données sont censés résoudre ce problème. Vous ne pouvez pas permettre concurrente écrit à la même fiche, mais certaines bases de données vous permet de bloquer uniquement l'enregistrement (s) que vous voulez écrire, un autre processus et de permettre d'écrire à d'autres dossiers en même temps. Googler db2 lock apporte quelques vaguement prometteurs.) PS. Vous voudrez peut-être revenir en arrière et modifier le lien e-mail direct à votre compte administrateur Tivoli. J'imagine que vous ne voudrais pas que pour lui permettre de commencer à recevoir des spams (c'est peut-être déjà trop tard) |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|