Skrypciarsko
cat /var/log/maillog | grep "connect from" | grep -v "disconnect" | awk '{print $NF}' | sed "s/.*\[//g" | sed "s/\]//" | grep -v "127.0.0.1" | uniq
Nieoptymalnie i brzydko zapewne, ale działa.
Dalej twierdzę, że sh w żadnej kompatybilnej postaci (po prostu składnia kompatybilna z sh jest okropna!) mi nie podchodzi - więc na przykład świetny zsh odpada. Niestety tak samo tcsh mi nie podchodzi.
Jak widac skladnia if ... jest bardzo intuicyjna (przypomina C).
if ( -f /bin/ps );
then
/bin/ps;echo -n 'wykonalo sie ps' >/dev/tty8
endif
Jak dla mnie to cholernie niepodobna i wcale nie intuicyjna...
27 września 2007 17:40:31
Gdzie ja byłem, kiedy rozdawali umiejętności programistyczne? Co prawda programowałem kiedyś w C++, ale za Chiny ludowe nie wiem, co ta pierwsza długa komenda robi. :)
27 września 2007 17:48:15
Ja też bym nie wiedział – wybiera z logów serwera SMTP wszystkie e-maile jakie próbowały się łączyć z wyjątkiem lokalnego. Po prostu.
Potrzebowałem tego, by potem zablokować na firewallu te wszystkie sieci, notabene należące do jednego operatora, chińskiego.
27 września 2007 23:45:46
Może coś takiego:
awk —field-separator ‘[’ ‘/[^s]connect from/{print $NF}’ < /var/log/mail.log | sed ‘s/]//g;’ | sort | uniq
28 września 2007 09:37:38
O, ładne. Niestety awka znam na tyle mało, że sam bym nie zrobił tego zbyt szybko (a i to co napisałem już teraz widzę, że dało by się ‘uładnić’). Dzięki Uzytkownik :-)