Учетная запись Grepping имена (прочитанные из файла) из набора сжатых файлов

Это работает для меня:

journalctl `which sshd` -a --no-pager --since="2015-02-04 00:00:00" | grep Failed

Пример вывода:

Apr 02 10:18:13 sturm sshd[6068]: Failed password for aboettger from 192.168.2.40 port 4812 ssh2
Apr 02 10:18:18 sturm sshd[6068]: Failed password for aboettger from 192.168.2.40 port 4812 ssh2

Или используйте -p-опцию, например:

journalctl `which sshd` -p 5 -a --no-pager --since="2015-02-04 00:00:00"

journalctl man page:

   -p, --priority=
       Filter output by message priorities or priority ranges. Takes either a single numeric or textual log level (i.e. between
       0/"emerg" and 7/"debug"), or a range of numeric/text log levels in the form FROM..TO. The log levels are the usual syslog
       log levels as documented in syslog(3), i.e.  "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5),
       "info" (6), "debug" (7). If a single log level is specified, all messages with this log level or a lower (hence more
       important) log level are shown. If a range is specified, all messages within the range are shown, including both the start
       and the end value of the range. This will add "PRIORITY=" matches for the specified priorities.
0
26.05.2018, 04:27
1 ответ

Es difícil depurar un fragmento de código sin saber qué datos contiene. Por lo tanto, me abstendré de especular sobre lo que podría estar mal con su código, además de decir que ^$ACCTprobablemente debería estar entre comillas dobles, al igual que todas las demás apariciones de $ACCT.


En lugar de llamar a zgrepuna vez por cada línea enaccount_list.txt(y descomprimir esos archivos de datos tantas veces como líneas haya en ese archivo ), lea las cuentas en una matriz en awky realice el procesamiento en una sola pasada:

awk 'NR==FNR { acct[$1]; next }
     $1 in acct { file="/tmp/" $1 ".txt"; print >>file; close(file) }' \
    account_list.txt <( zcat datafile.0[2-3]2015.gz )

Esto supone basho algún otro shell que comprenda las sustituciones de procesos. También se supone que la lista de cuentas contiene el nombre de la cuenta en la primera columna y que los archivos de datos también contienen el nombre de la cuenta en la primera columna (en realidad no ha mostrado cómo se ven estos archivos, así que no puedo decir si esto funcionaría o no ).

El primer bloque awksolo se ejecuta para el primer archivo, account_list.txt, y creará una matriz asociativa, acct, con los nombres de cuenta para extraer como claves.

El segundo bloque solo se ejecuta sobre las líneas de los archivos de datos extraídos, y si el primer campo corresponde a una clave en acct, esa línea se imprime en un archivo con el nombre adecuado.

0
28.01.2020, 04:22

Теги

Похожие вопросы