
Eu escrevi um script que é executado ps -ef
a cada 5 minutos e a saída é anexada a um arquivo. Desejo criar um novo arquivo quando o tamanho do arquivo atual exceder 200 MB. Alguém pode me ajudar com isso?
Responder1
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
Responder2
Confira o logrotate
programa. Primeiro, crie um arquivo de configuração, digamos, /home/john/logrotate/ps.conf
, com conteúdo como este: (supondo que você despeje sua ps
saída em /home/john/logrotate/log/ps.log
)
/home/john/logrotate/log/ps.log {
size = 200MB
missingok
notifempty
}
Então você pode criar um crontab para executar /usr/bin/logrotate /home/john/logrotate/ps.conf
. Verhomempara mais opções, como compactação.