The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

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
Empresas britânicas shunning a análise de dados em tempo real iBot Complex Event Processing RSS Notícias 0 07-14-2008 08:30
An Introduction to Real-Time Data Integration iBot Oracle Atualizações (RSS) 0 04-06-2008 06:10
CSV fusão de dados usando uma camisa de uma shell? jjinca Programação Shell Script e 2 08-13-2007 12:15
Precisa de ajuda para 2 ficheiro fusão getdpg Programação Shell Script e 2 07-12-2006 10:07
Mesclando dados Rev Programação Shell Script e 8 06-03-2005 04:14

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 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuário
  
 

Join Date: Jul 2008
Local: Phoenix, Arizona
Lugares: 669
Mesclando últimos dados sobre tempo e syslog

Este é sobre um sistema HP-UX.

Preciso de fundir os 2 relatórios, para cada linha no syslog Preciso lookup que foi autenticado para o pts / # com base no tempo a partir do last.txt relatório.

Aqui está o que eu recebo do sulog.log

gato syslog | grep "su:" | grep "14 jun."


14 jul 08:02:48 servidor1 su: - 2 utilizador1 de raiz
14 jul 09:13:23 servidor1 su: + 2 utilizador1 de raiz
14 jul 12:03:03 servidor1 su: + 2 utilizador1 de raiz
14 jul 18:15:13 servidor1 su: + 3 user2 de raiz
14 jul 15:03:01 servidor1 su: + 4 user7 de raiz

- 2 pts \u003d / 2
+ 2 \u003d pts / 2
+ 3 \u003d pts / 3
etc ...





Isso é do último relatório:

cabeça last.txt | grep "14 jul."
utilizador1 pts / 2 10.0.0.1 Qui 14 jul 08:00 - 10:00 (02:00)
utilizador1 pts / 2 10.0.0.2 Qui 14 jul 11:00 - 13:00 (02:00)
user2 pts / 3 10.0.0.3 qua. 14 jul 16:00 - 20:00 (04:00)
user7 pts / 4 hostx qua. 14 jul 13:25 - 16:01 (02:35)
.
.
.
.

Então, eu poderia ter:

14 jul 08:02:48 servidor1 su: - 2 utilizador1-raiz 10.0.0.1
14 jul 09:13:23 servidor1 su: + 2 utilizador1 de raiz 10.0.0.1
14 jul 12:03:03 servidor1 su: + 2 utilizador1 de raiz 10.0.0.2
14 jul 18:15:13 servidor1 su: + 3 user2 de raiz 10.0.0.3
14 jul 15:03:01 servidor1 su: + 4 user7 de raiz hostx

Qualquer ajuda seria ótimo.

Última edição por Ikon; em 07/17/2008 12:33..
  #2 (permalink)  
Old 07-17-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.312
Se você tem a primeira saída em ficheiro1 ea segunda em produção ficheiro2:

Código:
awk '
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
a[$7]{$0=$0 FS a[$7]}
{print}
' file2 file1
Se você receber erros utilização nawk, tímido ou / usr/xpg4/bin/awk no Solaris.

Atenciosamente
  #3 (permalink)  
Old 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuário
  
 

Join Date: Jul 2008
Local: Phoenix, Arizona
Lugares: 669
Citação:
Originally Posted by Franklin52 View Post
Se você tem a primeira saída em ficheiro1 ea segunda em produção ficheiro2:

Código:
awk '
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
a[$7]{$0=$0 FS a[$7]}
{print}
' file2 file1
É Rock, que funciona muito bem ...

Um casal perguntas ...
Im ainda aprendizagem awk ... Pode me explicar como isso funciona .. Qual o seu fazê-lo eu não tenho que perguntar sobre outros scripts no futuro, e posso ajudar os outros mais.

realmente aprecio isso.
  #4 (permalink)  
Old 07-17-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.312
Código:
awk '
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
a[$7]{$0=$0 FS a[$7]}
{print}
' file2 file1
Explicação:

O código para o primeiro arquivo (ficheiro2):

Código:
NR==FNR{split($2,s,"/");i=s[2];a[i]=$3;next}
NR \u003d\u003d FNR -> É verdade, quando lemos o primeiro arquivo.
split ($ 2, s ,"/") -> Que dividir o segundo campo para obter as chaves 2, 3 etc
i \u003d s [2] -> I é agora a chave
a [i] \u003d $ 3 -> Criar um array "um" com a chave do índice e atribuir o valor do campo para a 3 ª série
próximo -> Ler a próxima linha e pular o resto do código

O código para o segundo arquivo (ficheiro1):

Código:
a[$7]{$0=$0 FS a[$7]}
{print}
um [$ 7] ($ 0 \u003d 0 $ FS uma [$ 7]) -> Se o campo 7. Existe no array anexar uma fieldseperator eo valor do array depois da linha (este é o 3 º campo do primeiro arquivo)
(print) -> Imprimir a linha.

Hope this helps.

Atenciosamente
  #5 (permalink)  
Old 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuário
  
 

Join Date: Jul 2008
Local: Phoenix, Arizona
Lugares: 669
ok, há um problema, não há verificação baseadas no tempo.

Eu teria de verificar para ver quem estava conectado à pts / # baseado em que momento foi registrado.

Sei que posso fazê-lo em perl, Mas preferiria não.

se eu tiver:

14 jul 08:02:48 servidor1 su: - 0 utilizador1 de raiz
14 jul 09:13:23 servidor1 su: + 0 utilizador1 de raiz
14 jul 12:03:03 servidor1 su: + 0 utilizador1 de raiz
14 jul 18:15:13 servidor1 su: + 0 user2 de raiz
14 jul 15:03:01 servidor1 su: + 0 user7 de raiz


e


utilizador1 pts / 0 10.0.0.1 Qui 14 jul 08:00 - 10:00 (02:00)
utilizador1 pts / 0 10.0.0.2 Qui 14 jul 11:00 - 13:00 (02:00)
user2 pts / 0 10.0.0.3 qua. 14 jul 16:00 - 20:00 (04:00)
user7 pts / 0 hostx qua. 14 jul 13:25 - 15:01 (02:35)

I get:

14 jul 08:02:48 servidor1 su: - 0 utilizador1 de raiz hostx
14 jul 09:13:23 servidor1 su: + 0 utilizador1 de raiz hostx
14 jul 12:03:03 servidor1 su: + 0 utilizador1 de raiz hostx
14 jul 18:15:13 servidor1 su: + 0 user2-raiz hostx
14 jul 15:03:01 servidor1 su: + 0 user7 de raiz hostx

Última edição por Ikon; em 07/17/2008 03:56..
  #6 (permalink)  
Old 07-17-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.312
Você deve ter um ou mais campos comuns (uma chave) em ambos os arquivos para juntar os arquivos.

Atenciosamente
  #7 (permalink)  
Old 07-17-2008
Ikon's Avatar
Ikon Ikon is offline Forum Advisor  
Usuário
  
 

Join Date: Jul 2008
Local: Phoenix, Arizona
Lugares: 669
Citação:
Originally Posted by Franklin52 View Post
Você deve ter um ou mais campos comuns (uma chave) em ambos os arquivos para juntar os arquivos.

Atenciosamente
Comum campos

Nome de usuário: "userX" \u003d "userX"-xxxxxxxx

pts: pts / "#" \u003d - "#" userX .......

Hora: ##:##:## dentro ##:## - ##:##

que vai ser suficiente?
Closed Thread

Marcadores

Tags
solaris

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 12:17.


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