The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Pedido de script para modificar a lista múltiplos parâmetros para V_fieldid variável Sammy Programação Shell Script e 0 03-30-2008 09:08
matar várias instâncias do mesmo programa ipzig Programação Shell Script e 12 12-17-2007 02:42
Programa Perl para ler a partir de múltiplos arquivos jyotipg Programação Shell Script e 1 07-19-2006 10:26
executando um programa de uma hora especificada prosputko Alto Nível de programação 3 07-06-2005 02:39
relógio programa Ben070371 UNIX para Dummies Perguntas & Respostas 5 12-05-2003 07:57

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-04-2008
tcskurra tcskurra is offline
Usuário
  
 

Join Date: Jun 2008
Posts: 2
Question Shell programa para aceitar vários pedidos ao mesmo tempo

Oi,

Eu tenho um script que envia o e-mail para o usuário com base em determinadas variáveis recebidas de Tivoli Monitoring Server 6.1.
Agora, para manter controle dos correios tenho escreveu um procedimento armazenado em DB2 como usamos DB2 UDB como back-end, que tomará as variáveis que foram usadas para enviar o e-mail e guarde-o em cima da mesa.

Estou chamando este procedimento a partir de uma loja Shell programa e para todas as mensagens enviadas utilizando o script eu chamo o shell programa passando as variáveis que é utilizado para enviar as mensagens, que por sua vez é passada para DB2 procedimento armazenado.

Eu também tenho um arquivo de log que irá armazenar hora e outras informações de todos os mails que foram enviados com êxito.

Está funcionando perfeitamente bem.

Mas o meu problema é quando eu tally os dados do DB e os dados no arquivo de log meu PO sempre têm um menor número em comparação com o arquivo de log. Estou certo de que o arquivo de log é não ter quaisquer duplicatas.

Quando comparado o arquivo de log de dados e os dados no banco de dados, descobrimos que se Múltipla pedido estão chegando ao mesmo tempo, casca programa não é capaz de processar todos eles.

Isso é se eu ficar 5 pedidos ao mesmo tempo reservatório arquivo é capaz de processar apenas 1 pedido ou no máximo 2 ou 3 pedido é largando outros 3 ou 2 pedidos.

Como faço para corrigir isso. Como posso fazer o meu programa shell processo pedidos múltiplos.


Thanks in advance.

Atenciosamente
Praveen
  #2 (permalink)  
Old 06-05-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
Mostre-nos o código.
  #3 (permalink)  
Old 06-05-2008
tcskurra tcskurra is offline
Usuário
  
 

Join Date: Jun 2008
Posts: 2
Citação:
Originally Posted by era View Post
Mostre-nos o código.

Oi o código é o seguinte

#! / 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 "| $ local | \ n"
ramal \u003d `echo $ email_id | cut-d" "-f 1`
localização \u003d `echo $ email_id | cut-d" "-f 2`
email \u003d `echo $ email_id | cut-d" "-f 3`
to_email_id \u003d `echo $ e-mail | cut-d": "-f 1`
cc_email_id \u003d `echo $ e-mail | cut-d": "-f 2`
alias_name \u003d `echo $ e-mail | cut-d": "-f 3`


A \u003d $ to_email_id
CC \u003d $ cc_email_id

MAIL_MESSAGE \u003d "
Caro administrador, \ n
Tivoli Monitoring evento recebeu com as seguintes informações: \ n
\ n
HostName: $ hostname \ n
Endereço_IP: $ origem \ n
SITUAÇÃO: situation_name $ \ n
Severidade: gravidade $ \ n
Causa: situation_displayitem $ \ n
Ocorrência: situation_time $ \ n
\ n
Os detalhes do evento são as seguintes: \ n
\ n
Mensagem: o volume lógico $ situation_displayitem no servidor $ host é de US $ pct__used% cheia. Actualmente, o espaço livre é de R $ free_megabytes MB. \ N

\ n
Para visualizar o estado actual do servidor de logon para \ n
http://XX.XX.XX.XX///cnp/kdh/lib/cnp.html
\ n
Nota: Este é um e-mail gerado automaticamente por favor, não responda de volta. \ N
Em caso de dúvidas entre em contato com o Tivoli coordenadores locais. \ N
\ n
\ n


Subject \u003d "A Situação $ situation_name desencadeada no servidor $ host"

X \u003d "$ (X: / sendEmail-f tivoli.monitoring @ tcs.com -t $ a CC-CC-u $ $ SUBJECT-m "$ MAIL_MESSAGE"-s XX.XX.XX.XX) "
echo "$ sucursal; $ localização; $ hostname; $ situation_name; para $ a $ X">> X: / mail.log
echo "$ sucursal; $ localização; $ hostname; $ situation_name; $ timestamp; $ msg; $ TO; $ X">> X: / event.log


X: / contagem / disk_mail.sh cms_hostname $ $ $ situation_name origem situation_origin $ $ $ adapter_host timestamp $ a $ CC


A última linha em negrito é onde eu estou chamando o procedimento armazenado db2 a partir da casca disk_mail.sh arquivo. Todo o código acima é volvimento para o envio de e-mail com base nos parâmetros recived do Tivoli.

Db2 procedimento armazenado está dentro X: / contagem / disk_mail.sh e este tem o seguinte código.

db2cmd / w / i <<EOF
echo "------------------------------------------------ -------------------------------------------------- ------">> "X: / relatórios / track_disk.txt"
db2 ligar para XXXX XXXX usuário usando XXXX
db2 chamada ITMUSER.MAIL_TRACK_SP ( '$ 1', '$ 2', '$ 3', current_timestamp, '$ 4', '$ 5', '$ 6', '$ 7', '$ 8')>> "X: / relatórios / track_disk. txt "
EOF
echo "inserido valores êxito $ 2 $ 3">> "X: / relatórios / track_disk.txt"
echo "------------------------------------------------ -------------------------------------------------- -------">> "X: / relatórios / track_disk.txt"
  #4 (permalink)  
Old 06-05-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
Eu não estou familiarizado com db2Mas, se não é o que lhe permite executar múltiplos db2cmd casos, ao mesmo tempo, você vai ter que serializar eles, de alguma maneira. Uma técnica comum é a de criar um "bloqueio" arquivo em um local compartilhado, e removê-lo quando terminar. Se o arquivo já existe quando você deseja criá-lo, de volta ao largo (talvez dormir durante alguns segundos) e tente novamente mais tarde. Como exatamente para criar um arquivo bloqueio segurança depende de sua plataforma etc, mas em torno do Google para "bloquear o arquivo". Se você tiver Procmail, ele vem com um lockfile utilitário. Talvez db2 já tem algo semelhante, na verdade.

(Pensei que era suposto bases para resolver este problema, apesar de tudo. Você não pode permitir que concorrentes escreve para o mesmo registro, mas alguns dados permitem-lhe bloquear apenas o registro (s) que você quiser escrever para, e permitir que outro processo para gravar outros registros ao mesmo tempo. Googling para db2 bloqueio traz um pouco vagamente promissor links.)

PS. Você pode querer voltar e editar o link para o seu e-mail ao vivo Tivoli conta admin. Eu imagino que você não gostaria para poder começar a receber spam (talvez já seja tarde demais)
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 01:05.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0