Faça o backup dos logs em um novo diretório

4

Eu preciso escrever um script para copiar arquivos de log.

Existem dois formatos de registros:

  • System_<date_timestamp>.log
  • trace_<date_timestamp>.log

Novos arquivos são gerados quando o log de rastreamento atinge 20 MB e o log do sistema atinge 10 MB.

Apenas 5 desses registros (5 para cada tipo) podem ser salvos, uma vez que há mais de 5 deles, os arquivos antigos são excluídos e substituídos por novos.

Portanto, antes que eles sejam excluídos, eu preciso copiá-los para um local diferente para que eu possa visualizá-los mais tarde, quando necessário, para depurar.

Basicamente, será semelhante ao seguinte (mostrando apenas o formato de log de rastreamento, semelhante ao log do sistema):

trace_12.03.05_17.11.20.log
trace_12.03.05_17.12.30.log
trace_12.03.05_17.13.45.log
trace_12.03.05_17.13.23.log
trace_12.03.05_17.14.40.log
    
por user40575 06.06.2013 / 03:43

3 respostas

3

Além disso, você pode usar o log-rotate para o mesmo, veja o exemplo a seguir

# Logrotate file for trace

/source/path/trace_*.log {
    missingok
    create
    compress
    rotate 1
    lastaction
        # After compressing logs, move to other location 
        Log_dir="/target/dir/old_log_$(date +%F)/$(date +%H_%S)/"
        [[ ! -d "${Log_dir}" ]] && /bin/mkdir -p "${Log_dir}"
        /bin/mv /source/path/*.gz "${Log_dir}"
    endscript
}

salve o arquivo acima, digamos que /etc/logrotate_trace.conf simplesmente configure o cron job para cada hora

00 * * * * /usr/sbin/logrotate  -f /etc/logrotate_trace.conf

para testes, você pode executá-lo a partir da linha de comando, como

/usr/sbin/logrotate  -f /etc/logrotate_trace.conf
    
por 06.06.2013 / 07:30
2

Com o GNU cp (como encontrado na maioria das distribuições Linux não incorporadas e em alguns outros Unices):

cp -p --update /source/path/trace_*.log /target/dir
    
por 06.06.2013 / 03:52
1

A ferramenta mais simples é o rsync , que copia novos arquivos, atualiza os arquivos alterados e deixa os arquivos inalterados existentes.

rsync -a /path/to/source/*.log /path/to/backup/directory/
    
por 07.06.2013 / 01:25