Los datos que se agregan a un archivo y cuando su valor haya superado los 200 MB, se debe crear un nuevo archivo.

Los datos que se agregan a un archivo y cuando su valor haya superado los 200 MB, se debe crear un nuevo archivo.

He escrito un script que se ejecuta ps -efcada 5 minutos y el resultado se adjunta a un archivo. Quiero que se cree un nuevo archivo cuando el tamaño del archivo actual supere los 200 MB. ¿Alguien me puede ayudar en esto?

Respuesta1

Puede agregar algo como esto a su secuencia de comandos, antes de agregar el archivo.

FILE="your-file"
if test $(( $(stat  -c"%s" "$FILE") )) -ge "$(( 200*1024*1024 ))"; then
    mv "$FILE" "$FILE-$(date +"%FT%T")"
fi

Respuesta2

Consulta el logrotateprograma. Primero, cree un archivo de configuración, digamos /home/john/logrotate/ps.conf, con contenido como este: (suponiendo que volque su pssalida a /home/john/logrotate/log/ps.log)

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

Luego puedes crear un crontab para ejecutar /usr/bin/logrotate /home/john/logrotate/ps.conf. Verhombrepara ver más opciones, como la compresión.

información relacionada