Se incontri difficoltà durante la lettura sistematica dei file di registro in Linux. Allora sei nel posto giusto. Semplicemente facendo gatto leggere un file di registro è un modo abbastanza semplice per ispezionare un file di registro. Ma quando desideri filtrare i dati in modo organizzato in base al tempo, utilizziamo awk , grep e sed comandi.
Il awk è un popolare strumento da riga di comando utilizzato per manipolare i dati nei file e generare un report basato su un determinato modello nel sistema Linux. Mentre grep è un semplice strumento per i modelli che ricerca i modelli utilizzando un'espressione regolare.
Oggi filtreremo /var/log/syslog file basato sull'intervallo di date utilizzando entrambi awk e grep strumenti da riga di comando.
Filtra i dati usando il comando Awk
Innanzitutto, filtriamo il file Syslog in base all'intervallo di tempo utilizzando awk comando come mostrato.
$ sudo awk -v start=07:00 -v stop=19:00 'start <= $2 && $2 < stop' /var/log/syslog
Risultato campione
Dec 11 19:39:19 LINUX dbus-daemon[2742]: [session uid=1000 pid=2742] Activating via systemd: service name='org.freedesktop.Tracker1' unit='tracker-store.service' requested by ':1.3' (uid=1000 pid=2740 comm="/usr/libexec/tracker-miner-fs " label="unconfined") Dec 11 19:39:19 LINUX systemd[2727]: Starting Tracker metadata database store and lookup manager... Dec 11 19:39:19 LINUX systemd[1]: session-23.scope: Succeeded. Dec 11 19:39:19 LINUX dbus-daemon[2742]: [session uid=1000 pid=2742] Successfully activated service 'org.freedesktop.Tracker1'
Sostituisci start=HH:MM
con ora e minuti di inizio, stop=HH:MM
con ora e minuti finali.
Se vuoi controllare il log più facilmente e in modo semplice, puoi seguire il grep utilità di comando.
Filtra i dati usando il comando Grep
Mostrerò alcuni esempi usando grep come se volessi controllare il registro per oggi, quindi passerò il comando seguente.
$ sudo grep -E " Dec 11" /var/log/syslog
Risultato campione
Dec 11 12:07:35 LINUX /usr/libexec/gdm-x-session[1231]: (==) Log file: "/var/lib/gdm3/.local/share/xorg/Xorg.0.log", Time: Fri Dec 11 12:07:35 2020 Dec 11 12:08:39 LINUX /usr/libexec/gdm-x-session[2812]: (==) Log file: "/home/shen/.local/share/xorg/Xorg.1.log", Time: Fri Dec 11 12:08:39 2020 Dec 11 12:09:04 LINUX gnome-shell[3019]: GNOME Shell started at Fri Dec 11 2020 12:08:55 GMT+0530 (IST) Dec 11 14:24:41 LINUX /usr/libexec/gdm-x-session[1208]: (==) Log file: "/var/lib/gdm3/.local/share/xorg/Xorg.0.log", Time: Fri Dec 11 14:24:41 2020 Dec 11 14:25:13 LINUX /usr/libexec/gdm-x-session[2783]: (==) Log file: "/home/shen/.local/share/xorg/Xorg.1.log", Time: Fri Dec 11 14:25:13 2020 Dec 11 14:25:40 LINUX gnome-shell[3049]: GNOME Shell started at Fri Dec 11 2020 14:25:31 GMT+0530 (IST)
Ora ti spiegheremo come funziona questo comando “grep ”. Un grep viene utilizzato per cercare modelli regolari nel file fornito.
I parametri -E
è chiamato extended-regex che viene utilizzato per impostare i modelli e, infine, è necessario fornire un file di registro o una directory di registro.
Per ottenere dati in un intervallo di esempi di date dal 01 dicembre al 10 dicembre , usa il comando seguente.
$ sudo grep -E "Dec 1|Dec 10" syslog
Risultato campione
Dec 11 19:48:04 LINUX systemd[1]: Starting Hostname Service... Dec 11 19:48:04 LINUX dbus-daemon[856]: [system] Successfully activated service 'org.freedesktop.hostname1' Dec 11 19:48:04 LINUX systemd[1]: Started Hostname Service. Dec 11 19:48:34 LINUX systemd[1]: systemd-hostnamed.service: Succeeded. Dec 11 19:50:01 LINUX CRON[39178]: (shen) CMD (~/duckdns/duck.sh >/dev/null 2>&1) Dec 11 19:51:58 LINUX dbus-daemon[856]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.320' (uid=1000 pid=38994 comm="/usr/bin/gnome-screenshot --gapplication-service " label="unconfined") Dec 11 19:51:58 LINUX systemd[1]: Starting Hostname Service... Dec 11 19:51:58 LINUX dbus-daemon[856]: [system] Successfully activated service 'org.freedesktop.hostname1' Dec 11 19:51:58 LINUX systemd[1]: Started Hostname Service.
Filtra i dati usando il comando Sed
Ora ti mostreremo come filtrare i dati usando il sed riga di comando. Per ottenere dati in un intervallo di date con determinati esempi di orari dall'11 dicembre 18:45:06 all'11 dicembre 19:00:01 , usa il comando seguente.
$ sudo sed -n '/Dec 11 18:45:06 /,/Dec 11 19:00:01/p' /var/log/syslog
Risultato campione
Dec 11 18:45:06 LINUX dbus-daemon[856]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.301' (uid=1000 pid=35830 comm="/usr/bin/gnome-screenshot --gapplication-service " label="unconfined") Dec 11 18:45:06 LINUX systemd[1]: Starting Hostname Service... Dec 11 18:45:06 LINUX dbus-daemon[856]: [system] Successfully activated service 'org.freedesktop.hostname1' Dec 11 18:45:06 LINUX systemd[1]: Started Hostname Service. Dec 11 18:45:36 LINUX systemd[1]: systemd-hostnamed.service: Succeeded. Dec 11 18:47:22 LINUX dbus-daemon[856]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.303' (uid=1000 pid=35830 comm="/usr/bin/gnome-screenshot --gapplication-service " label="unconfined") Dec 11 18:47:22 LINUX systemd[1]: Starting Hostname Service... Dec 11 18:47:22 LINUX dbus-daemon[856]: [system] Successfully activated service 'org.freedesktop.hostname1' Dec 11 18:47:22 LINUX systemd[1]: Started Hostname Service. Dec 11 18:47:52 LINUX systemd[1]: systemd-hostnamed.service: Succeeded. Dec 11 18:50:01 LINUX CRON[36057]: (shen) CMD (~/duckdns/duck.sh >/dev/null 2>&1) Dec 11 18:55:01 LINUX CRON[36206]: (shen) CMD (~/duckdns/duck.sh >/dev/null 2>&1) Dec 11 19:00:01 LINUX CRON[36473]: (shen) CMD (~/duckdns/duck.sh >/dev/null 2>&1)
Il -n
parametro con sed non stamperà l'output di ogni riga. Ora il /pattern1/
,/pattern2/
sarà l'espressione Nell'ultimo -p
i parametri suggeriscono che sed verifichi l'espressione successiva secondo un dato modello. Dopo tutto questo, devi fornire il file di registro o il percorso del file di registro.
In caso di domande e problemi relativi al filtro Data. Sentiti libero di porre la tua domanda nella sezione commenti.