Estoy usando tcpflow para registrar el tráfico de red en un servidor. Quiero registrar estos datos en un archivo, pero no en todos de él. El proceso de monitoreo se ejecutará en segundo plano como daemon indefinidamente.¿Cómo preprocesamos una secuencia de texto infinita antes de escribirla en un archivo?
Algunas líneas de la secuencia incluyen un conteo de bytes, y si veo ese conteo de bytes (digamos, 800 bytes), entonces necesito registrar los siguientes 800 bytes en el archivo. Si no, deseo no escribir en el archivo.
¿Cuál es la mejor manera para mí de hacer este tipo de "preprocesamiento sobre la marcha" de la transmisión para decidir qué redirigir al archivo de registro? ¿Algún tipo de secuencia de comandos de segundo daemon que está escuchando la transmisión, que se conecta con esa secuencia de comandos?
Ejemplo:
I ver la línea siguiente en la corriente:
1343932842: 010.079.091.189.35856-010.104.001.199.11211: set i:1:20163484235 0 0 1429
Primero, necesito para comprobar que tiene un "set". Luego, examino la última parte de la línea (1429), luego leo los siguientes 1429 bytes y los escribo en un archivo.
Parece flujo TCP soporta expresiones de filtro como tcpdump – jordanm
@jordanm no creo que me ayudará. Aquí hay una línea de ejemplo: '1343932842: 010.079.091.189.35856-010.104.001.199.11211: establecer i: 1: 20163484235 0 0 1429' Necesito ver primero que la línea tiene un "conjunto", luego examinar la última parte de la línea (1429), luego leer los siguientes 1429 bytes y escribirlos en un archivo. – Tim
¿en qué idioma estás escribiendo esto? ¿En qué ambiente se está ejecutando esto? Las etiquetas "bash" y "php" son confusas ... – tucuxi