Compacta arquivos de log antigos e move para o novo diretório

1

Eu tenho uma pasta /home/usr/logs/ que contém arquivos de log que são mais antigos que 1 dia. Desejo compactar todos os arquivos de log com mais de um dia para separar os arquivos compactados (por exemplo, zip ou tar.gz) e movê-los para a pasta /home/usr/logs/archive .

Os arquivos de registro estão em formatos de nomenclatura, como valid.app5s.log.1019 , app5s.gf3sts.1019 , valid.app5s.gf3log.1019 , app5s.gf3log.1019 , app5s.gf1sts.1019 , valid.app5s.gf1log.1019 , app5s.sts.1019 .

Eu tentei assim:

find .  -mtime +1 -exec zip filename.zip '{}' + && mv filename.zip archive/ \;

Mas esses arquivos não são compactados corretamente. Alguém por favor me ajudará a descobrir o erro do meu código?

    
por Satya 26.10.2016 / 11:51

1 resposta

1

logrotate pode fazer isso, a correspondência de padrões pode ser para * log, então você adiciona uma seção chamada "postrotate", considere postrar um pequeno script bash que é executado após a rotação.

exemplo;

/home/usr/logs/*.log {
    daily
    missingok
    compress
    #delaycompress (this will prevent compressing of one day)
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
                mv /home/usr/logs/*.gz /home/usr/logs/archive/;
    endscript
}

UPDATE1:

se você quiser usar o zip em vez do gzip, adicione;

compresscmd /usr/bin/zip
compressoptions -r
compressext .zip
    
por 26.10.2016 / 11:57

Tags