6 votos

¿Cómo uso el "flujo de registros" para buscar cadenas en TODOS los registros existentes en MacOS?

Necesito buscar en todos los registros de MacOS Mojave por "alguna cadena". Me dijeron que la forma de hacer esto era ejecutando:

sudo log stream --source --start'1999-99-99 23:59' | egrep -i "some regex string"

Sin embargo, esto no está haciendo el truco. ¿Cuál es la manera apropiada de hacer esto?

4voto

slm Puntos 118

No hay apoyo para --start

Las directrices de uso de log stream no dan indicios de que un --start se apoya el argumento, me pregunto si estaban hablando de log show en su lugar.

uso del flujo de registro

$ log stream --source --start
log: unrecognized option `--start'
usage: log stream [options]
   or: log stream [options] --process <pid> | <process>

description:
    Stream events from the system or a given process.

options:
    --color <mode>                  Control color output (valid: auto, always, none)
    --level default | info | debug  Include events at, and below, the given level
    --predicate <predicate>         Filter events using the given predicate
    --process <pid> | <process>     Stream events from the specified process
    --source                        Annotate output with source file and line-number
    --style <style>                 Output format (valid: syslog, json, compact)
    --timeout <num>[m|h|d]          Terminate streaming after timeout has elapsed
    --type activity | log | trace   Limit streaming to a given event type
    --mach-continuous-time          Print mach continuous time timestamps rather than walltime

predicate usage:
    Filter predicates follow the NSPredicate format described at:
    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Predicates/AdditionalChapters/Introduction.html

    For predicate field/type details, see `log help predicates`.

Usando log show

log show tiene un --start que puedes usar de la siguiente manera:

$ log show --source --start '2019-01-01' | egrep -i "some regex string"

NOTA: Este puede ser un comando muy costoso de ejecutar, ya que va a ir a través de todos los registros en su sistema de que --start tiempo, pero devolverá todos los fósforos a su egrep .

Registros de transmisión

El uso de log show se detendrá una vez que se encuentre con el final de los troncos. Si realmente quieres analizar/filtrar el flujo de registros a medida que ocurren, entonces querrás usar log stream como esto:

$ log stream --source | grep -iE "some regex string"

-o-

$ log stream --source --predicate 'processImagePath contains "some bit of text"'

Referencias

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X