[Cortar arquivos] [RESOLVIDO]

1. [Cortar arquivos] [RESOLVIDO]

Edir Arnaldo de Oliveira Bonametti
EddyBin

(usa CentOS)

Enviado em 12/07/2015 - 13:21h


Bom dia Prezados,

Vocês sabem como eu posso cortar um arquivo de log gerando um novo arquivo apenas com as informações
que foram registradas naquele dia.?
Meu Caso:
Eu criei um script que faz o backup de uns arquivos e encaminha via rsync para um servidor remoto, e gera um
LOG com as informações desse processo.

Até ai blz, o script esta funcionando normalmente, eu queria implementá-lo, e mandar os resultados escritos no
log para o e-mail, também consegui fazê-lo com o comando a baixo :

mail -s "[BACKUP_GRAVACOES]" " meuemail@empresa.com.br" < /var/log/records.log

Então ai veio o desafio, eu queria apenas enviar os resultados gerados da ultima vez que o script foi rodado.?

Alguém poderia me ajudar?

Desde já agradeço,

Atenciosamente,
Edir Bonametti


  


2. Re: [Cortar arquivos] [RESOLVIDO]

José
digitalx

(usa Debian)

Enviado em 12/07/2015 - 13:27h

Nessa questão de script não posso ajudar. Mas o pacote logcheck não resolveria seu problema??


3. Re: [Cortar arquivos]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/07/2015 - 14:08h

eBonametti escreveu:


Bom dia Prezados,

Vocês sabem como eu posso cortar um arquivo de log gerando um novo arquivo apenas com as informações
que foram registradas naquele dia.?
Meu Caso:
Eu criei um script que faz o backup de uns arquivos e encaminha via rsync para um servidor remoto, e gera um
LOG com as informações desse processo.

Até ai blz, o script esta funcionando normalmente, eu queria implementá-lo, e mandar os resultados escritos no
log para o e-mail, também consegui fazê-lo com o comando a baixo :

mail -s "[BACKUP_GRAVACOES]" " meuemail@empresa.com.br" < /var/log/records.log

Então ai veio o desafio, eu queria apenas enviar os resultados gerados da ultima vez que o script foi rodado.?

Alguém poderia me ajudar?

Desde já agradeço,

Atenciosamente,
Edir Bonametti


Altere seu script para gerar o arquivo de log com a data atual do servidor.
> /var/log/records$(date +"%Y-%m-%d").log 


mail -s "[BACKUP_GRAVACOES]" " meuemail@empresa.com.br" < /var/log/records$(date +"%Y-%m-%d").log 







4. Re: [Cortar arquivos] [RESOLVIDO]

Edir Arnaldo de Oliveira Bonametti
EddyBin

(usa CentOS)

Enviado em 12/07/2015 - 14:08h

Não sei , nunca o usei, você poderia explanar o uso do mesmo ?



5. Enviar log por e-mail

Edir Arnaldo de Oliveira Bonametti
EddyBin

(usa CentOS)

Enviado em 12/07/2015 - 14:20h


Sim, o script roda todos os dias as 22 horas, no caso eu queria apenas enviar o por e-mail os resultados
daquele dia : Ex:

Log da ultima vez que o script Rodou :

[Sat Jul 11 22:59:01 BRT 2015] Sincronização iniciada em 11/07/2015-22:59:01....
[Sat Jul 11 22:59:01 BRT 2015] Coletando Informações do Banco de Dados (Servidor xxxx)....
[Sat Jul 11 22:59:02 BRT 2015] Lista Gerada com Sucesso.....
[Sat Jul 11 22:59:07 BRT 2015] Iniciando Cópia das gravações para HD EXTERNO, servidor (xxxxxx)...,
[Sat Jul 11 22:59:10 BRT 2015] Gravações Copiadas com Sucesso....
[Sat Jul 11 22:59:10 BRT 2015] Sincronização Finalizada em 11/07/2015-22:59:10....

No caso eu só queria enviar essas informações no log, apenas do dia 11, hoje o script vai rodar novamente,
então eu queria que fosse enviado um e-mail com essas informações referentes a esse dia, deu pra entender a ideia ?

Desde já agradeço.


6. data atual

Edir Arnaldo de Oliveira Bonametti
EddyBin

(usa CentOS)

Enviado em 12/07/2015 - 14:27h


Então, na função que eu criei, ele ja gera o log na data e hora atual em que o script esta sendo rodado.




7. Re: [Cortar arquivos] [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/07/2015 - 14:32h

eBonametti escreveu:


Então, na função que eu criei, ele ja gera o log na data e hora atual em que o script esta sendo rodado.



Poderia postar o script?





8. Re: [Cortar arquivos] [RESOLVIDO]

José
digitalx

(usa Debian)

Enviado em 12/07/2015 - 14:37h

Pelo que entendi a alteração proposta por amarildosertorio resolve seu problema, porque não vai precisar "cortar" o arquivo records.log, pois pra cada dia, será gerado um arquivo diferente records+data.log.

Sobre o logcheck: http://logcheck.org/


9. Script

Edir Arnaldo de Oliveira Bonametti
EddyBin

(usa CentOS)

Enviado em 12/07/2015 - 14:55h

Claro, Vamos la .

O script é dividido em dois arquivos ( functions.sh e backup_diario.sh)

No arquivo functions.sh, eu criei todas as funções que fazem funcionar o script, como
gerar logs, conectar no mysql , e copiar os arquivos para o servidor remoto como rsync.

Já no arquivo backup_diario.sh, eu chamo o arquivo functions, e montei uma lógica que
faz a verificação de alguns erros etc.

Segue abaixo:
functions.sh

#!/bin/bash
#================================================================
# funcoes.sh
#
# Funcoes auxiliares para rotina de backup
#===============================================================
DATA=`date +%Y-%m-%d -d '1 days ago'`
LOG=/var/log/recordsCLIENTE.log
# Funcao que gera os logs
function log() {
MSG="[`date`] $@"
echo $MSG >> $LOG
}
# Funcao que gera lista de comparacao
function fn_connection_mysql() {
log " Coletando Informações do Banco de Dados (Servidor XXX.XXX.XXX)...."
mysql -u usuario -psenha banco -hXXX.XXX.XXX -e 'select
concat(uniqueid, ".gsm") from `call` where username = "10477712" and
nasipaddress = "XXX.XXX.XXX" and terminatecause = "ANSWER" and
stoptime like "'$DATA'%";' | grep -v concat > /root/output_day_ago.txt
if [[ $? -eq 0 ]]; then #
return 0;
fi
return 1;
}
function fn_sync_records () {
rsync -Cavhh --files-from=/root/output_day_ago.txt /var/spool/asterisk/monitor/ -e "sudo ssh -p XXX" XXX.XXX.XXX:/mnt/gravacao/gravacao/
if [[ $? -eq 0 ]]; then #
return 0;
fi
return 1;
-------------------------------------------
backup_diario.sh:

#!/bin/bash
# Inicio do Script
INICIO=`date +%d/%m/%Y-%H:%M:%S`
DATA=`date +%Y-%m-%d -d '1 days ago'`
#----------------
#CONFIGURACOES
#----------------
cd /scripts/backup_CLIENTE
source ./functions.sh
# Inicia o script
log " Sincronização iniciada em $INICIO...."

if ( ! fn_connection_mysql); then
log " ERRO: Por favor, leia o Manual do MYSQL...."
else
log " Lista Gerada com Sucesso....."
sleep 5
log "Iniciando Cópia das gravações para HD EXTERNO, servidor (XXX.XXX.XXX)...,"
if ( ! fn_sync_records); then
log " ERRO: Não foi possível conectar no servidor, ou o comando rsync esta incorreto...."
log " Gravações não Copiadas....."
else
sleep 3
log " Gravações Copiadas com Sucesso...."
fi

fi
FINAL=`date +%d/%m/%Y-%H:%M:%S`

log " Sincronização Finalizada em $FINAL...."

Bom, esse é meu script, ele esta funcionamento perfeitamente, como já mencionei aos senhores, a ultima
coisa que eu precisava, era mandar um e-mail pro monitoramento com as informações geradas no log
do dia. Ai então a necessidade de cortar as informações que já foram geradas anteriormente e enviar por
e-mail apenas a ultima vez.

Novamente, desde já agradeço imensamente a ajuda de vocês.

Atenciosamente,
Edir Bonametti


10. Re: [Cortar arquivos]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 12/07/2015 - 15:14h

Olá,

faz assim:

grep "$(date -d -1day |awk -F" " '{print$2" " $3}')" /var/log/records.log > /tmp/log_mail.txt && 
mail -s "[BACKUP_GRAVACOES]" " meuemail@empresa.com.br" < /tmp/log_mail.txt


Existem maneiras muuuuiiito mais bonitas de se fazer isso, mas como não tenho os detalhes, optei pelo comando que irá funcionar independente do seu ambiente e também não precisará mexer na logica do seu script.


EDIT:::: corrigi o comando.


Abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


11. Funcionou

Edir Arnaldo de Oliveira Bonametti
EddyBin

(usa CentOS)

Enviado em 12/07/2015 - 15:52h


Prezados:

Queria agradecer a ajuda e presteza dos senhores, com o comando do tonyhts, minha necessidade
foi atendida.

Agora acredito que conseguirei por a cereja nesse bolo. srsr .

Muitíssimo abrigado a todos que ajudaram.

Atenciosamente,
Edir Bonametti


12. Re: [Cortar arquivos] [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 12/07/2015 - 15:57h

eBonametti escreveu:


Prezados:

Queria agradecer a ajuda e presteza dos senhores, com o comando do tonyhts, minha necessidade
foi atendida.

Agora acredito que conseguirei por a cereja nesse bolo. srsr .

Muitíssimo abrigado a todos que ajudaram.

Atenciosamente,
Edir Bonametti



Que bom!

Nao esqueça de marcar o tópico com resolvido.

abs


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts