From e5dddf33e3a20e277f505b523561d49ef1199cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauri=20V=C3=B5sandi?= Date: Tue, 19 Jun 2018 08:42:13 +0300 Subject: [PATCH] =?UTF-8?q?filter3=20n=C3=A4idis=20kasutades=20dialog=20pr?= =?UTF-8?q?ogrammi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/README.md | 19 +++++++++++++++++++ bin/filter2 | 4 ++++ bin/filter3 | 28 ++++++++++++++++++++++++++++ raport.py | 34 ---------------------------------- 4 files changed, 51 insertions(+), 34 deletions(-) create mode 100755 bin/filter3 delete mode 100644 raport.py diff --git a/bin/README.md b/bin/README.md index 5fef1d2..bb7940b 100644 --- a/bin/README.md +++ b/bin/README.md @@ -28,7 +28,9 @@ Bashis kirjutatud skript mis parsib standardsisendist ning kuvab tulemused stand Käivitamiseks: +```bash (cat access.log; zcat access.log.1.gz) | top2 +``` # top4 @@ -77,3 +79,20 @@ Pythoni variandi põhilised erisused: * Jooksvalt pakib lahti .gz lõpulised failid * Jätab vahele failid mille sees otsitavat ajavahemikku kindlasti ei ole + +# filter3 + +Küsib pseudograafilise kasutajaliidese abil kuupäeva ja minutite vahemikku ning paneb +sama ```filter2``` programmi käima + +Sõltuvuste paigaldamiseks + +```bash +apt install dialog +``` + +Käivitamiseks: + +```bash +filter3 /var/log +``` diff --git a/bin/filter2 b/bin/filter2 index 71c909e..e4671d2 100755 --- a/bin/filter2 +++ b/bin/filter2 @@ -13,6 +13,10 @@ except IndexError: try: scope_begin = datetime.strptime(sys.argv[2], "%Y-%m-%d %H:%M:%S") +except ValueError: + # Ei suutnud parsida kellaaega YYYY-mm-dd HH:MM:SS formaadis, + # proovime test formaati veel + scope_begin = datetime.strptime(sys.argv[2], "%d/%m/%Y %H:%M:%S") except IndexError: scope_begin = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) diff --git a/bin/filter3 b/bin/filter3 new file mode 100755 index 0000000..9e29442 --- /dev/null +++ b/bin/filter3 @@ -0,0 +1,28 @@ +#!/bin/bash + +# Katkesta vea korral +set -e + +# Küsi kuupäeva ja kelaaega +KPV=$(dialog --calendar 0 0 0 --stdout) +KELLAAEG=$(dialog --timebox "Sisesta kellaaeg mida otsida" 0 0 --stdout) + +# Loo ajutine fail menüüvalikute jaoks ning kustuta see igal juhul kui skript lõpetab +VALIKUD_FAIL=$(mktemp) +trap "rm -f $VALIKUD_FAIL" EXIT + +# Ajavahemike valikud +cat << EOF > $VALIKUD_FAIL +1 "1 minut" +2 "2 minutit" +3 "3 minutit" +5 "5 minutit" +15 "veerand tundi" +30 "pool tundi" +EOF + +AJAVAHEMIK=$(dialog --menu "Mis ajavahemikku otsida alates sisestatud kellaajast?" 0 0 0 --file $VALIKUD_FAIL --stdout) + +clear +set -x +filter2 $1 "$KPV $KELLAAEG" $AJAVAHEMIK diff --git a/raport.py b/raport.py deleted file mode 100644 index 87c3ecd..0000000 --- a/raport.py +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/python -# encoding: utf-8 - -""" -Parsi standardsisendist Apache logikirjed ja kuva edetabelid -Käivitamiseks: (cat access.log; zcat access.log.1.gz) | python raport.py -""" - -import re -import sys -from collections import Counter -from log_parsers import ApacheLogParser - -hits = Counter() # IP-d kust tuldi -urls = Counter() # URL-id mida külastati -agents = Counter() # User agent mida kasutati külastamisel - -for timestamp, log_entry, stack_trace in ApacheLogParser(sys.stdin): - urls[log_entry.get("path")] += 1 - hits[log_entry.get("remote_addr")] += 1 - agents[log_entry.get("user_agent")] += 1 - -print "Top5 külastatud URL-id veebiserveris:" -for path, count in urls.most_common(5): - sys.stdout.write("% 9d %s\n" % (count, path)) -print -print "Top5 külastusi teinud IP aadressid:" -for remote_addr, count in hits.most_common(5): - sys.stdout.write("% 9d %s\n" % (count, remote_addr)) -print -print "Top5 kasutatud veebilehitsejad/OS-id:" -for user_agent, count in agents.most_common(5): - sys.stdout.write("% 9d %s\n" % (count, user_agent)) -