Creo que esta tarea se puede lograr con sed
sed -i '1,10d' myfile
eliminaría las líneas del 1 al 10 del archivo.
Creo que todo el mundo debería al menos echar un vistazo a este sed 1 liners.
Tenga en cuenta que esto no funciona para los archivos de registro que una aplicación agrega activamente (como se indica en la pregunta).
sed -i
creará un nuevo archivo y 'borrará' el archivo en el que se está escribiendo. La mayoría de las aplicaciones continuarán escribiendo registros en el archivo de registro eliminado y seguirán llenando espacio en disco. El nuevo archivo de registro truncado no se agregará. Esto solo cesará cuando la aplicación se reinicie o se le indique que cierre y vuelva a abrir sus archivos de registro. En ese momento habrá una brecha (registros de registro faltantes) en el nuevo archivo de registro si ha habido alguna actividad registrable entre el uso de sed y el reinicio de la aplicación.
Una forma segura de hacer esto sería detener la aplicación, usar sed para truncar el registro y luego reiniciar la aplicación. Este enfoque puede ser inaceptable para algunos servicios (por ejemplo, un servidor web con altos requisitos de rendimiento y continuidad del servicio)
No, los sistemas operativos como Linux, y sus sistemas de archivos, no prevén la eliminación de datos desde el inicio de un archivo. En otras palabras, el punto de inicio de almacenamiento de un archivo es fijo.
La eliminación de líneas desde el inicio de un archivo generalmente se logra escribiendo los datos restantes en un archivo nuevo y eliminando el anterior. Si un programa tiene el archivo antiguo abierto para escritura, la eliminación de ese archivo se pospone hasta que la aplicación cierre el archivo.
Como señalaron los comentaristas, por las razones dadas en mi oración anterior, generalmente necesita coordinar la eliminación del archivo de registro con los programas que escriben los registros. Exactamente cómo hacer esto depende de los programas. Algunos programas cerrarán y volverán a abrir sus archivos de registro cuando les envíe una señal (por ejemplo, HUP) y esto se puede usar para evitar que los registros se escriban en un archivo de registro "eliminado", sin interrumpir el servicio.
Hay muchas utilidades disponibles para administrar el tamaño de los archivos de registro, por ejemplo logrotate
Algunos programas tienen sus propias utilidades. Por ejemplo, el servidor web Apache incluye una utilidad de rotar registros.
No. Una solución a este problema genérico de crecimiento de archivos de registro es la rotación de registros. Esto implica el movimiento regular (nocturno o semanal, por lo general) de un archivo de registro existente a otro nombre de archivo y comenzar de nuevo con un archivo de registro vacío. Después de un período, los archivos de registro antiguos se desechan.
Consulte:http://www-uxsup.csx.cam.ac.uk/~jw35/courses/apache/html/x1670.htm