Thread Previous • Date Previous • Date Next • Thread Next |
Mogens Melander skrev:
Dagens opgave går ud på, i bash-script, at trække ip-adressen ud af følgende
log entries.
Mar 19 12:45:48 styx sshd[19796]: Failed password for illegal user newsroom
from 213.133.99.19 port 33561 ssh2
Mar 19 12:45:48 styx sshd[19797]: Illegal user brian from 213.133.99.19
Regulære udtryk har aldrig været min stærke side, og jeg har en klar fornemmelse af at denne opgave løses bedst af sådanne. Jeg kan klare det med en kombination af grep|cut, men er overbevist om at det kan klares enklere/mere elegant med det rette udtryk.
du kan f.eks. bruge awk eller perl der begge har regular expressions og kan manipulere med data. Jeg foretrækker "gawk" til simple tekst-ind og tekst-ud opgaver.
/: Failed password for illegal user newsroom from/ { # forhåbentlig nok match, ellers må tilføjes lidt mere
print $13; # udnyt at det er 13. felt (adskilt af blanktegn) next; } /: Illegal user brian from/ { print $10; # her er det 10. felt next; }Erstart "newsromm" og "brian" med [^[:space:]]+ hvis det ikke er specifik de "user" du vil matche. (evt. [[:alnum]]+ hvis du ved user kun kan være bogstaver og cifre)
Thread Previous • Date Previous • Date Next • Thread Next |