He escrito un script que se ejecuta ps -ef
cada 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 logrotate
programa. Primero, cree un archivo de configuración, digamos /home/john/logrotate/ps.conf
, con contenido como este: (suponiendo que volque su ps
salida 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.