Duvida em .log do script "echo" + ">" [RESOLVIDO]

1. Duvida em .log do script "echo" + ">" [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 30/12/2016 - 10:16h

Como faço que meu script CRIE o log.txt registrando hora e data que script iniciou, e o restante dos comandos "saida" seja dentro do log.txt criado, Hoje como a saida é com base em hora devido o script estar com minutos e segundos, `date +%d_%m_%Y-%Hh%M` cada comando cria um .txt novo.
Como deve ser a saida esse para log? nao quero que cada comando crie um txt novo, e sim grave TUDO dentro do PREIMEIRO TXT criado.
mantendo a logica de data+hora+minutos+segundos.

meu script:

#!/bin/bash

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
LOG='/home/log'
ORIGEM='/home/base.fdb'
DESTINO='/home/base.fbk'
KEY_DB='masterkey'

echo " --------------------------------------------------- " > ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Backup de $ORIGEM iniciado as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

if (/opt/firebird/bin/gbak -b -t -V -IG -L $ORIGEM ${DESTINO}`date +%d_%m_%Y-%Hh%M` -user SYSDBA -password $KEY_DB 2>> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt )

then

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Backup de $ORIGEM realizado com sucesso as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Ocorreu um erro durante o processo de backup de $ORIGEM as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
fi

### Compacta Backup
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* Iniciado Compactação de ${DESTINO}`date +%d_%m_%Y-%Hh%M` as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
##################### COMPACTAR #######################
if ( /bin/gzip --force ${DESTINO}`date +%d_%m_%Y-%Hh%M` 2>> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt )

then

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* Compactacao ${DESTINO}`date +%d_%m_%Y-%Hh%M` realizada com sucesso as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* OCORREU UM ERRO DURANTE O PROCESSO DE COMPACTACAO DE ${DESTINO}`date +%d_%m_%Y-%Hh%M` as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

exit 1

fi




  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 30/12/2016 - 11:49h

ncampos escreveu:

Como faço que meu script CRIE o log.txt registrando hora e data que script iniciou, e o restante dos comandos "saida" seja dentro do log.txt criado, Hoje como a saida é com base em hora devido o script estar com minutos e segundos, `date +%d_%m_%Y-%Hh%M` cada comando cria um .txt novo.
Como deve ser a saida esse para log? nao quero que cada comando crie um txt novo, e sim grave TUDO dentro do PREIMEIRO TXT criado.
mantendo a logica de data+hora+minutos+segundos.

meu script:

#!/bin/bash

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
LOG='/home/log'
ORIGEM='/home/base.fdb'
DESTINO='/home/base.fbk'
KEY_DB='masterkey'

echo " --------------------------------------------------- " > ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Backup de $ORIGEM iniciado as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

if (/opt/firebird/bin/gbak -b -t -V -IG -L $ORIGEM ${DESTINO}`date +%d_%m_%Y-%Hh%M` -user SYSDBA -password $KEY_DB 2>> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt )

then

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Backup de $ORIGEM realizado com sucesso as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Ocorreu um erro durante o processo de backup de $ORIGEM as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
fi

### Compacta Backup
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* Iniciado Compactação de ${DESTINO}`date +%d_%m_%Y-%Hh%M` as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
##################### COMPACTAR #######################
if ( /bin/gzip --force ${DESTINO}`date +%d_%m_%Y-%Hh%M` 2>> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt )

then

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* Compactacao ${DESTINO}`date +%d_%m_%Y-%Hh%M` realizada com sucesso as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* OCORREU UM ERRO DURANTE O PROCESSO DE COMPACTACAO DE ${DESTINO}`date +%d_%m_%Y-%Hh%M` as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

exit 1

fi



Bom dia Ncampos.
Crie a var LOG, da seguinte forma:
LOG="/home/log_$(date +%d_%m_%Y-%Hh%M-%S).txt" 

Dessa forma, todo log será enviado para o mesmo arquivo.

Sugestão:
LOG="/home/log_$(date +%s).txt" 

O nome fica mais "curto" . . . e tem todas as informações...

att.:
marcelo oliver



3. Re: Duvida em .log do script "echo" + ">" [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/12/2016 - 11:51h

use o comando LOGGER que usa o sistema de LOG como se fosse um executável.
Bem mais profissional que ficar salvando echos...


4. Re: Duvida em .log do script "echo" + ">" [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 02/01/2017 - 09:35h

msoliver escreveu:

ncampos escreveu:

Como faço que meu script CRIE o log.txt registrando hora e data que script iniciou, e o restante dos comandos "saida" seja dentro do log.txt criado, Hoje como a saida é com base em hora devido o script estar com minutos e segundos, `date +%d_%m_%Y-%Hh%M` cada comando cria um .txt novo.
Como deve ser a saida esse para log? nao quero que cada comando crie um txt novo, e sim grave TUDO dentro do PREIMEIRO TXT criado.
mantendo a logica de data+hora+minutos+segundos.

meu script:

#!/bin/bash

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
LOG='/home/log'
ORIGEM='/home/base.fdb'
DESTINO='/home/base.fbk'
KEY_DB='masterkey'

echo " --------------------------------------------------- " > ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Backup de $ORIGEM iniciado as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

if (/opt/firebird/bin/gbak -b -t -V -IG -L $ORIGEM ${DESTINO}`date +%d_%m_%Y-%Hh%M` -user SYSDBA -password $KEY_DB 2>> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt )

then

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Backup de $ORIGEM realizado com sucesso as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " Ocorreu um erro durante o processo de backup de $ORIGEM as $HORAMINUTO em $DIAMESANO " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
fi

### Compacta Backup
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* Iniciado Compactação de ${DESTINO}`date +%d_%m_%Y-%Hh%M` as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
##################### COMPACTAR #######################
if ( /bin/gzip --force ${DESTINO}`date +%d_%m_%Y-%Hh%M` 2>> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt )

then

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* Compactacao ${DESTINO}`date +%d_%m_%Y-%Hh%M` realizada com sucesso as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
HORAMINUTO2=$(date +"%H%M")
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " ********* OCORREU UM ERRO DURANTE O PROCESSO DE COMPACTACAO DE ${DESTINO}`date +%d_%m_%Y-%Hh%M` as $HORAMINUTO em $DIAMESANO ********* " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt
echo " --------------------------------------------------- " >> ${LOG}`date +%d_%m_%Y-%Hh%M`.txt

exit 1

fi



Bom dia Ncampos.
Crie a var LOG, da seguinte forma:
LOG="/home/log_$(date +%d_%m_%Y-%Hh%M-%S).txt" 

Dessa forma, todo log será enviado para o mesmo arquivo.

Sugestão:
LOG="/home/log_$(date +%s).txt" 

O nome fica mais "curto" . . . e tem todas as informações...

att.:
marcelo oliver



Obrigado!! a opção LOG="/home/log_$(date +%d_%m_%Y-%Hh%M-%S).txt" me atendeu como desejava.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts