Blog

Czas epoki unix-a - konwersja

Czas epoki unix-a - konwersja

Czas w Linuksie liczymy wg tzw epoki unix-a. Co to znaczy?

Jeśli wydamy komendę w Linuksie (terminal)

date "+%s"

1574511413

to otrzymamy wynik, który nie jest czytelny dla człowieka. Przyzwyczajeni jesteśmy do innego schematu przedstawiania daty i czasu. Czas który widzimy pokazuje ile sekund upłyneło od daty  1970-01-01 00:00:00 UTC.

Aby odczytać czas zapisany w notacji unix-owej możemy użyć komendy

date -d @1574511413

Możemy również użyć perla

perl -e 'print scalar(localtime(1574511413)), "\n"'

Z zapisem bardzo często można się spotkać w bazach danych lub logach.

Jak można wykorzystać konwersję w locie?

Przeglądając logi mojego pihole możemy użyć jednolinijkowca awk

Najpierw wgląd jak wygląda standardowe wyjście:

1574514699|192.168.80.11|POST /admin/list.php?l=black HTTP/1.1|200|20907
1574514700|192.168.80.11|GET /admin/img/donate.gif HTTP/1.1|200|3592
1574514700|192.168.80.11|GET /admin/scripts/pi-hole/php/get.php?list=black&_=1574514700224 HTTP/1.1|200|88
1574514717|192.168.80.11|POST /admin/scripts/pi-hole/php/sub.php HTTP/1.1|200|0

Teraz wykonujemy polecenie:

awk -F"|"  '{ $1=strftime("%F %T",$1); print }' /var/log/lighttpd/access.log

Funkcja strftime nie jest dostepna w standardowym awk. Jak wykonamy polecenie pokaże nam się błąd:

error: "function strftime never defined"

Musimy doinstalować gawk. Na raspberrypi zainstalowanego mam Resbiana (Debian) wykonamy więc:

apt get install gawk

Następnie można wykonać ponownie polecenie

awk -F"|"  '{ $1=strftime("%F %T",$1); print }' /var/log/lighttpd/access.log

Wynik, który nam się ukaże to:

2019-11-23 14:11:37 192.168.80.11 GET /admin/style/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 HTTP/1.1 200 18028
2019-11-23 14:11:37 192.168.80.11 GET /admin/img/logo.svg HTTP/1.1 200 1649
2019-11-23 14:11:39 192.168.80.11 POST /admin/list.php?l=black HTTP/1.1 200 20907
2019-11-23 14:11:40 192.168.80.11 GET /admin/img/donate.gif HTTP/1.1 200 3592
2019-11-23 14:11:40 192.168.80.11 GET /admin/scripts/pi-hole/php/get.php?list=black&_=1574514700224 HTTP/1.1 200 88
2019-11-23 14:11:57 192.168.80.11 POST /admin/scripts/pi-hole/php/sub.php HTTP/1.1 200 0

<< Wróć do poprzedniej strony