Pular para o conteúdo

Manipulador de horario [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar
01 02 03

1. Manipulador de horario [RESOLVIDO]

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.

Responder tópico

2. Re: Manipulador de horario [RESOLVIDO]

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]

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]

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

ah, vlw pela força cara

5. Script

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]

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]

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]

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]

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


10. Re: Manipulador de horario [RESOLVIDO]

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]

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]

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder