Cel: chcę znać geolokalizację adresu IP z którego wykonano logowanie do systemu korzystając z terminala.
Narzędzia: geoiplookup, lastb.
Próbowałem w potoku poniższej komendy, ale nie działa.
lastb | awk ‘{print $3}’ | geoiplookup
Cel: chcę znać geolokalizację adresu IP z którego wykonano logowanie do systemu korzystając z terminala.
Narzędzia: geoiplookup, lastb.
Próbowałem w potoku poniższej komendy, ale nie działa.
lastb | awk ‘{print $3}’ | geoiplookup
Może geoiplookup po prostu nie obsługuje rury.
Spróbuj tak:
geoiplookup $(lastb | awk ‘{print $3}’)
Niestety nie działa - błąd poniżej.
awk: cmd. line:1: ‘{print
awk: cmd. line:1: ^ invalid char ‘▒’ in expression
Usage: geoiplookup [-h] [-?] [-d custom_dir] [-f custom_file] [-v] [-i] [-l] <ipaddress|hostname>
A sama komenda działa poprawnie?
lastb | awk '{print $3}'
Albo na forum to tylko tak dziwnie wygląda - tam są pojedyncze apostrofy. Twoje wyglądają jakoś dziwnie.
PS
Nie wiem w jakim kontekście ma to być użyte, ale dobrze by było bardziej to usystematyzować:
#!/bin/bash
for IP in $(lastb | awk '{print $3}' | sort -u); do
geoiplookup $IP; done
lastb | awk ‘{print $3}’
wyświetla w odzielnych liniach IP, z wyjątkiem przedostatniej (pusta linia) oraz ostatniej (Dzień tygodnia) w formacie jak poniżej.
X.X.X.X
Y.Y.Y.Y
…
.
…Sat
Nie chcę używać skryptu, preferuję jednolinijkowiec jak to możliwe.
`#!/bin/bash
for IP in $(lastb | awk ‘{print $3}’ | sort -u); do
geoiplookup $IP; done
No to przecież jest
for IP in $(lastb | awk '{print $3}' | sort -u); do geoiplookup $IP; done
PS
Jeśli chodzi o SSH to nie lepiej wyciągnąć IP z /var/log/auth.log (o ile jest rsyslog, syslog-ng?)
Tego szukałem - dzięki.
Zrób sobie do tego relay server np. z użyciem Postfix i możesz pchać wyniki na maila:
for IP in $(lastb | awk '{print $3}' | sort -u); do geoiplookup $IP | mail -s "Logowanie z "$IP":" root; done