![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Solicitud de modificación de secuencia de comandos a la lista de parámetros múltiples variables V_fieldid | Sammy | Programación de scripts de shell y | 0 | 03-30-2008 09:08 PM |
| matar a varias instancias del mismo programa | ipzig | Programación de scripts de shell y | 12 | 12-17-2007 02:42 AM |
| Programa en perl para leer desde múltiples archivos | jyotipg | Programación de scripts de shell y | 1 | 07-19-2006 10:26 PM |
| ejecutando un programa para un período de tiempo especificado | prosputko | Programación de Alto Nivel | 3 | 07-06-2005 02:39 PM |
| reloj de tiempo del programa | Ben070371 | UNIX for Dummies Preguntas y Respuestas | 5 | 12-05-2003 07:57 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Hola,
Tengo un script que envía el correo electrónico para el usuario sobre la base de ciertas variables recibidas de Tivoli Server Monitoring 6.1. Ahora para hacer un seguimiento de los correos que he escrito un procedimiento almacenado en DB2 como usamos DB2 UDB como parte final que tengan las variables que se usan para enviar el correo y lo almacenan en la tabla. Estoy llamando a este procedimiento de una tienda de Shell y el programa para cada correo enviado a través de la secuencia de comandos que yo llamo el depósito del programa mediante la aprobación de las variables que se utiliza para enviar los correos, que a su vez se pasa al procedimiento almacenado de DB2. También tengo un archivo de registro que almacenará la información de tiempo y otros de todo el correo que se ha enviado correctamente. De que funciona perfectamente bien. Pero mi problema es cuando coinciden los datos de la DB y los datos en el archivo de registro de mi PP siempre tienen un número menor en comparación con el archivo de registro. Estoy seguro de que el archivo de registro no tiene duplicados. Cuando se compararon los datos del archivo de registro y los datos en la base de datos en mi opinión, si son procedentes de múltiples petición al mismo tiempo, el programa de shell no está en condiciones de proceso de todos ellos. Es decir, si tengo 5 solicitudes al mismo tiempo depósito de archivos es capaz de procesar sólo 1 solicitud o máximo 2 o 3 petición es caer otros 3 o 2 solicitudes. ¿Cómo puedo solucionar este problema. ¿Cómo puedo hacer que mi programa de proceso de depósito de solicitudes. Gracias de antemano. Recuerdos Praveen |
|
||||
|
Muéstranos el código.
|
|
||||
|
Hola como es el código siguiente #! / 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 "| $ sucursal | \ n" # echo "| $ ubicación | \ n" rama \u003d `echo $ email_id | cut-d", "f-1» ubicación \u003d `echo $ email_id | cut-d", "-f 2» email \u003d `echo $ email_id | cut-d", "-f 3» to_email_id \u003d `echo $ correo electrónico | cut-d": "-f 1» cc_email_id \u003d `echo $ correo electrónico | cut-d": "-f 2» alias_name \u003d `echo $ correo electrónico | cut-d": "-f 3» A \u003d $ to_email_id CC \u003d $ cc_email_id MAIL_MESSAGE \u003d " Estimado administrador, \ n Tivoli Monitoring evento recibió con la siguiente información: \ n \ n HostName: $ hostname \ n Dirección_IP: $ origen \ n SITUACIÓN: $ situation_name \ n Severidad: $ gravedad \ n Causa: $ situation_displayitem \ n Ocurrencia: $ situation_time \ n \ n Los detalles del evento son las siguientes: \ n \ n Mensaje: El volumen lógico situation_displayitem $ $ en el servidor host es de $ pct__used% completo. En la actualidad, el espacio libre es de $ free_megabytes MB. \ N \ n Para ver el estado actual del servidor, inicie sesión en \ n http://XX.XX.XX.XX///cnp/kdh/lib/cnp.html \ n Nota: Este es un mensaje automático generado por favor, no responda de nuevo. \ N En caso de alguna duda, póngase en contacto con los coordinadores locales de Tivoli. \ N \ n \ n Subject \u003d "$ situation_name La situación desencadenada en el servidor $ host" X \u003d "$ (X: / sendEmail-f tivoli.monitoring @ tcs.com -t $ A $ cc-CC-u $ SUJETO-m "$ MAIL_MESSAGE"-s XX.XX.XX.XX) " echo "$ sucursal; $ lugar, $ hostname, $ situation_name, $ X $ A">> X: / mail.log echo "$ sucursal; $ lugar, $ hostname, $ situation_name, $ timestamp, $ msg; $ A $ X">> X: / event.log X: / contar / disk_mail.sh cms_hostname $ $ $ situation_name origen situation_origin $ $ $ $ timestamp adapter_host A $ CC La última línea en negrita es donde yo estoy llamando a la db2 procedimiento almacenado el archivo desde el shell disk_mail.sh. Todo lo anterior es el código ción para el envío del correo electrónico basado en los parámetros recibió de Tivoli. Db2 procedimiento almacenado se encuentra dentro de X: / contar / disk_mail.sh y esto tiene el siguiente código. db2cmd / w / i <<EOF echo "------------------------------------------------ -------------------------------------------------- ------">> "X: / informes / track_disk.txt" db2 usuario conectarse a XXXX XXXX XXXX utilizando db2 llamada ITMUSER.MAIL_TRACK_SP ( '$ 1', '$ 2', '$ 3', CURRENT_TIMESTAMP, '$ 4', '$ 5', '$ 6', '$ 7', '$ 8')>> "X: / informes / track_disk. txt " EF echo "inserta valores con éxito $ 2 $ 3">> "X: / informes / track_disk.txt" echo "------------------------------------------------ -------------------------------------------------- -------">> "X: / informes / track_disk.txt" |
|
||||
|
No estoy familiarizado con db2, Pero si no es lo que le permite ejecutar múltiples db2cmd casos al mismo tiempo, tendrá que serializar ellos de alguna manera. Una técnica común es la creación de un "bloqueo" en una ubicación compartida, y retírela cuando haya terminado. Si el archivo ya existe cuando se desea crear, atrás (tal vez el sueño de unos pocos segundos) y vuelve a intentarlo más tarde. Exactamente cómo crear un archivo de bloqueo de seguridad depende de su plataforma, etc, pero en torno a google para "bloquear el archivo". Si usted tiene Procmail, viene con un LockFile utilidad. Quizás db2 ya tiene algo parecido, en realidad.
(Pensé que se supone las bases de datos para resolver este problema, sin embargo. No se puede permitir a los concurrentes escribe el mismo registro pero algunas bases de datos le permiten bloquear sólo el expediente (s) que desea escribir, y permitir que otro proceso de escribir a otros documentos al mismo tiempo. Para google db2 bloqueo trae algunas vagamente prometedora enlaces.) PS. Es posible que desee volver atrás y editar en vivo el vínculo de correo electrónico a su cuenta de administrador de Tivoli. Me imagino que no te gustaría para que pueda empezar a recibir spam (quizás sea ya demasiado tarde) |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|