Manipulador de horario [RESOLVIDO]

1. Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 28/11/2008 - 09:40h

Olá pessoal, não tenho mta experiencia em shell por isso peço a ajuda de quem puder!
É o seguinte: possuo um arquivo .txt com várias linhas , onde cada linha contém 3 posições...a primeira de cada uma tem um IP , a segunda um horario em UNIXTIME e a terceira uma URL. Ou seja, é um relatorio de acesso de uma rede.

Preciso manipular o horario, transformando-o de UNIXTIME para um horario normal com data e hora, e retornar o resultado no lugar do que esta em UNIXTIME e depois imprimir na tela o resultado do .txt inteiro!

EX:

arquivo .txt

10.19.8.13 1226664492.216 https://br.adserver.yahoo.com:443
10.19.8.13 1226664492.197 https://br.adserver.yahoo.com:443
10.19.7.14 1226664538.763 http://pagead2.googlesyndication.com/pagead/show_ads.js
10.19.7.14 1226664538.762 http://optimizedby.rmxads.com/st?ad_type=i...;section=390644
10.19.7.14 1226664538.654 http://optimizedby.rmxads.com/st?ad_type=a...;section=390644
10.19.7.14 1226664538.653 http://optimizedby.rmxads.com/st?ad_type=i...;section=390644
10.19.6.11 1226664548.919 http://bp0.blogger.com/_qGJq7QNy6ng/Rn-KmH...livroinfant.jpg


Preciso urgente dessa ajuda pessoal.

No aguardo ancioso.

Abraços.


  


2. Re: Manipulador de horario [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 28/11/2008 - 10:47h

Voce precisa do script inteiro, ou só de ajuda para converter o unixtime?

se te ajudar converter, trabalhe com:

var=`head -1 <caminho></seu arquivo.txt> | cut -d' ' -f2 |cut -d. -f1`
date --date='1/1/1970 + '$var' seconds'

se não conseguir elaborar o script, responde ai que a gente corre em cima....

abs




3. Re: Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 28/11/2008 - 11:12h

Então amigo, precisaria do script inteiro pra falar a vdd viu...to começando agora a programar em shell, não nem sobre e nem como usar as ferramentas...rs...mas então,

o que eu preciso é que essa saida , ja manipulada, seja inserida no lugar, posição, q estava o unixtimestamp ( POSIX).

no caso , a posição é a segunda neh.




4. Re: Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 28/11/2008 - 11:13h

ah, vlw pela força cara


5. Script

nelio
neliobjr

(usa Red Hat)

Enviado em 28/11/2008 - 12:14h

Cara, acho que isto de resolve, crie este script: ctrl+c no script abaixo e vi script_com_o_seu_nome.sh ctrl+v (ira colar, esc :wq, para salvar), altere a permissao do script.
chmod 777 script_com_o_seu_nome.sh

Ai beleza.
qualque problema ou dúvida posta aí, que se eu souber te ajudo..

#!/bin/sh

origem=/home/oracle/teste/teste #coloque o caminho do seu arquivo com o unixtime
arq_tmp=/home/oracle/teste/tmp.log #indique um caminho para um arquivo temporario que eh necessario, de preferencia aonde vc salvar este script
destino=/home/oracle/teste/testebk

more $origem | cut -d' ' -f2 |cut -d. -f1 > $arq_tmp #le o unix time e joga no arquivo temporario
cp -f $origem $destino # faz um backup do arquivo original, caso tenha algume problema

while test -s $arq_tmp #enquanto o arquivo temporario, nao estiver fazio, faz.
do
var=`head -1 $arq_tmp` #le a primeira linha o arq_tmp e joga numa variavel temporaria
echo unix time: $var #exibe o unixtime caso nao queira ver comente esta linha
var2=`date --date='1/1/1970 + '$var' seconds' +%H:%M:%S` #le o unix da var temporaria e altera para formato de hora
echo horario: $var2 #exibe hora
sed -i 's/'$var'/'$var2'/' $origem #altera no seu arquivo origem o unixtime para horario convencional
sed -i '1d' $arq_tmp #apaga a primeira linha do arquivo temporario, a cada leitura do while o arquivo ira ficando com uma linha a menos ate que fique fazio e saia do while
sleep 1 # tempo um segundo para leitura, nao eh necessario pode comentar se quiser
done #sai do while


6. Re: Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 01/12/2008 - 01:32h

Ok, entendido.

Só que o arquivo, que é o de 'origem', meu é criado através dessa manipulação dentro de um script .sh já.

Ex:

************************************************************
#Filtragem do relorio de acesso

echo Os acessos negados foram:
echo \

echo ' IP Data e Hora URL Negada'
echo \

# Filtra somente os acessos negados, e manda a saida para
# um outro arquivo chamado manipulacao, sendo que as
# posicoes $1 e $3 foram invertidas, de acordo com o
# proposto. A primeira posição deve conter o IP, a segunda # a data e horario,
# transformada de UNIXTIME para data e
# horario normal, e a terceira a URL Negada.

awk '$4 == "TCP_DENIED/403" {print $3, $1, $7}' relatorio_acesso.txt > manipulacao.txt

# esse arquivo relatorio_acesso.txt ja existe e esta no
# mesmo diretorio que esse script ( que é na própria raiz - do root).

sort -r manipulacao.txt > manipulacao_1.txt

# uso do comando sort com parametro -r, para que quando
# impresso,apareca por grupos de mesmos IP's. Agora é nessa # linha que vai ser criado o # meu arquivo "origem" , como # vc disse, que no caso é o arquivo manipulacao_1.txt

************************************************************

Portanto, meu arquivo, que vou usar como origem, como vc disse, não provém de um diretório e sim de uma manipulação e criação dele no scrit filtragem.sh

O que devo fazer?

Vlw pela força cara, aguardo ancioso!



7. Re: Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 01/12/2008 - 10:21h

ah, e gostaria que fosse tudo em um script só
no caso, no filtragem.sh

vlw pela ajuda cara


8. Re: Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 01/12/2008 - 10:51h

ah, e todos os arquivos estão no usuario root

o filtragem.sh e o relatorio_acesso.txt

vlw


9. Re: Manipulador de horario [RESOLVIDO]

Marcus-RJ
Marcus-RJ

(usa Arch Linux)

Enviado em 01/12/2008 - 11:42h




10. Re: Manipulador de horario [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 01/12/2008 - 11:52h

Colega, desculpa minha sinceridade, mas vc não acha que fica muito facil entregar trabalho assim, eu já te fiz o script, vc esta com a faca e o queijo na mão, vc mesmo postou os comandos que necessita, tenta inserir ai, eu tb tive muita tentativa e erro quando comecei.... mas quebrava a cabeça e me virava....

E de duas uma, ou infelizmente vc não tem condições de acessar um computadador de casa, ou não se deu nem o trabalho de tentar fazer alguma coisa no fds, senão teria visto e postado antes, pois coloquei o script na sexta.

Como estou botando mais fé na segunda opção, eu me recuso a te ajudar mais do que já te ajudei, desta forma que vc esta querendo.

ABS


11. Re: Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 01/12/2008 - 11:53h

Então Marcus, o meu arquivo filtragem.sh ta assim:

************************************************************
#Filtragem do relorio de acesso

echo Os acessos negados foram:
echo \

echo ' IP Data e Hora URL Negada'
echo \

# Filtra somente os acessos negados, e manda a saida para
# um outro arquivo chamado manipulacao, sendo que as
# posicoes $1 e $3 foram invertidas, de acordo com o
# proposto. A primeira posição deve conter o IP, a segunda # a data e horario,
# transformada de UNIXTIME para data e
# horario normal, e a terceira a URL Negada.

awk '$4 == "TCP_DENIED/403" {print $3, $1, $7}' relatorio_acesso.txt > manipulacao.txt

# esse arquivo relatorio_acesso.txt ja existe e esta no
# mesmo diretorio que esse script ( que é na propria cota
# do usuario root).

sort -r manipulacao.txt > manipulacao_1.txt

# uso do comando sort com parametro -r, para que quando
# impresso,apareca por grupos de mesmos IP's.

************************************************************

Lembrando que o arquivo relatorio_acesso.txt já existe e esta na conta do root, assim como o próprio script filtragem.sh

Só q se eu der um cat manipulacao_1.txt ele vai imprimir com o horario em unixtime, e eu gostaria que imprimisse ja com o horario alterado.

Se puder ajudar fico grato, abraço



12. Re: Manipulador de horario [RESOLVIDO]

Ricardo Guedes
rguedesc

(usa Ubuntu)

Enviado em 01/12/2008 - 11:55h

Eu vi sim, e só pude trabalhar em cima disso agora Nelio, estou desde manha aqui quebrando a cabeça e tentando ajustar o script seu aqui pro que eu quero, mas ta dando alguns erros



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts