
Estoy intentando escribir un script utilizado en un cuadro de búfer que capture todos los paquetes del tráfico de la red. Como es para una red bastante grande dividimos las capturas en segmentos de 100MB. En momentos de alto tráfico de red, a menudo durante un período de un minuto, tendremos múltiples pcap que cubren ese período.
Entonces, lo que quiero hacer es tener un script bash que le permita al analista que está buscando algo especificar una fecha y hora y cuántos minutos a cada lado quieren buscar archivos. Obviamente puedo hacer algo como esto.
ls -al | grep "Dec 1" | grep 02:00
ls -al | grep "Dec 1" | grep 02:01
y así sucesivamente, obtener cada resultado y buscar cada archivo individualmente para la palabra clave específica que estoy buscando, pero me gustaría poder hacer una búsqueda más amplia de todos los archivos creados dentro de un rango de tiempo y luego buscar cada uno de ellos. la palabra clave.
No estoy del todo seguro de cómo hacerlo, agradecería cualquier ayuda.
Respuesta1
Algunas de las cosas buenas que find
(en GNU/Linux) pueden hacer por usted:
Unidades:
n
exactamentenorteuntis-n
menos quenorteunidades+n
más quenorteunidades -
Qué pasó:
-atime
: ultima vezaccedido-ctime
: cambios enarchivo en sí(permisos, propietarios,…), no su contenido-mtime
:contenido del archivocambió-amin n
:norteminutos edad-atime n
:norteHace días (24 horas)- lo mismo ocurre con
ctime/min
ymtime/min
)
De este modo:
find -atime -30
→ consultado por última vez hace menos de 30 díasfind -ctime +5
→ hace más de 5 días, cambios en el archivo mismofind -mtime +2 -31
→ el contenido del archivo cambió hace más de dos días pero menos de 31 días
también - -daystart
: después de hoy, 0.00h
Grepping
find
cosa -exec grep {} \;
→; la última parte ( {} \;
) es esencial: tenga en cuenta el único espacio en blanco entre {}
y\;
Las -exec
opciones permiten incorporar otros comandos afind
Respuesta2
buscar -iname "" -mtime -7 -exec zgrep "" {} \;
Por ex-
buscar /opt/WebSphere/AppServer/profiles/application/logs/ -iname "SystemOut*" -mtime -7 -exec zgrep "FileNotFoundException" {} \;
Encontrará dentro del directorio /opt/WebSphere/AppServer/profiles/application/logs/ archivos que comiencen con SystemOut en los últimos 7 días y buscará String FileNotFoundException.