filter3 näidis kasutades dialog programmi
This commit is contained in:
		| @@ -28,7 +28,9 @@ Bashis kirjutatud skript mis parsib standardsisendist ning kuvab tulemused stand | |||||||
|  |  | ||||||
| Käivitamiseks: | Käivitamiseks: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
| (cat access.log; zcat access.log.1.gz) | top2 | (cat access.log; zcat access.log.1.gz) | top2 | ||||||
|  | ``` | ||||||
|  |  | ||||||
| # top4 | # top4 | ||||||
|  |  | ||||||
| @@ -77,3 +79,20 @@ Pythoni variandi põhilised erisused: | |||||||
|  |  | ||||||
| * Jooksvalt pakib lahti .gz lõpulised failid | * Jooksvalt pakib lahti .gz lõpulised failid | ||||||
| * Jätab vahele failid mille sees otsitavat ajavahemikku kindlasti ei ole | * 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 | ||||||
|  | ``` | ||||||
|   | |||||||
| @@ -13,6 +13,10 @@ except IndexError: | |||||||
|  |  | ||||||
| try: | try: | ||||||
|     scope_begin = datetime.strptime(sys.argv[2], "%Y-%m-%d %H:%M:%S") |     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: | except IndexError: | ||||||
|     scope_begin = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) |     scope_begin = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								bin/filter3
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								bin/filter3
									
									
									
									
									
										Executable file
									
								
							| @@ -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 | ||||||
							
								
								
									
										34
									
								
								raport.py
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								raport.py
									
									
									
									
									
								
							| @@ -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)) |  | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user