Dados anexados a um arquivo e quando seu valor ultrapassar 200 MB, novo arquivo deve ser criado

1

Eu escrevi um script que executa ps -ef a cada 5 minutos e a saída é anexada a um arquivo. Eu quero obter um novo arquivo criado quando o tamanho do arquivo atual excede 200MB. Alguém pode me ajudar nisso?

    
por Radha 02.11.2016 / 16:04

2 respostas

1

Você pode adicionar algo assim ao seu script antes de anexar o arquivo.

FILE="your-file"
if test $(( $(stat  -c"%s" "$FILE") )) -ge "$(( 200*1024*1024 ))"; then
    mv "$FILE" "$FILE-$(date +"%FT%T")"
fi
    
por 02.11.2016 / 16:20
0

Confira o programa logrotate . Primeiro, crie um arquivo de configuração, digamos, /home/john/logrotate/ps.conf , com conteúdo como este: (supondo que você despeja sua ps output em /home/john/logrotate/log/ps.log )

/home/john/logrotate/log/ps.log {
    size = 200MB
    missingok
    notifempty
}

Em seguida, você pode criar um crontab para executar /usr/bin/logrotate /home/john/logrotate/ps.conf . Veja man para mais opções, como compactação.

    
por 02.11.2016 / 16:15

Tags