Veel näidiseid
This commit is contained in:
parent
e5dddf33e3
commit
6b9db62031
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,5 +1,5 @@
|
|||||||
*.pyc
|
*.pyc
|
||||||
raport/top.svg
|
top.svg
|
||||||
raport/raport*.html
|
raport/raport*.html
|
||||||
raport/bar.svg
|
raport/bar.svg
|
||||||
raport/bar.png
|
raport/bar.png
|
||||||
|
@ -32,6 +32,24 @@ Käivitamiseks:
|
|||||||
(cat access.log; zcat access.log.1.gz) | top2
|
(cat access.log; zcat access.log.1.gz) | top2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# top3
|
||||||
|
|
||||||
|
Pythoni skript mis loeb standardsisendist Apache logikirjed sisse ning genereerib neist
|
||||||
|
värvitud maailmakaardi SVG faili ```top.svg```.
|
||||||
|
|
||||||
|
Skripti sõltuvuste paigaldamiseks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt install python-geoip python-numpy geoip-database # Ubuntu, Debian
|
||||||
|
dnf install python2-GeoIP # Fedora
|
||||||
|
```
|
||||||
|
|
||||||
|
Käivitamiseks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat access.log | top3 tee/failini/BlankMap-World6.svg
|
||||||
|
```
|
||||||
|
|
||||||
# top4
|
# top4
|
||||||
|
|
||||||
Pythonis kirjutatud skript mis leiab enim külastatud URL-id.
|
Pythonis kirjutatud skript mis leiab enim külastatud URL-id.
|
||||||
|
15
bin/filter2
15
bin/filter2
@ -15,7 +15,7 @@ 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:
|
except ValueError:
|
||||||
# Ei suutnud parsida kellaaega YYYY-mm-dd HH:MM:SS formaadis,
|
# Ei suutnud parsida kellaaega YYYY-mm-dd HH:MM:SS formaadis,
|
||||||
# proovime test formaati veel
|
# proovime teist formaati veel
|
||||||
scope_begin = datetime.strptime(sys.argv[2], "%d/%m/%Y %H:%M:%S")
|
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)
|
||||||
@ -35,10 +35,17 @@ for root, dirs, files in os.walk(dir_logs):
|
|||||||
# iga kausta kohta (root) on kättesaadav alamkataloogide nimekiri (dirs)
|
# iga kausta kohta (root) on kättesaadav alamkataloogide nimekiri (dirs)
|
||||||
# ning failide nimekiri (files)
|
# ning failide nimekiri (files)
|
||||||
for filename in files:
|
for filename in files:
|
||||||
if filename.startswith("access.log"):
|
if not filename.startswith("access.log"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Kleebi kokku faili absoluutne tee praegusest kataloogist ja failinimest
|
||||||
path = os.path.join(root, filename)
|
path = os.path.join(root, filename)
|
||||||
file_end = datetime.fromtimestamp(
|
|
||||||
os.stat(path).st_mtime)
|
# Loe faili muutmise (samas ka viimase logikirje) kuupäev ja kellaaeg
|
||||||
|
file_end = datetime.fromtimestamp(os.stat(path).st_mtime)
|
||||||
|
|
||||||
|
# Kui otsitav ajavahemik algab peale viimase logikirje kuupäeva ja kellaaega,
|
||||||
|
# pole mõtet seda faili inspekteerida
|
||||||
if scope_begin > file_end:
|
if scope_begin > file_end:
|
||||||
sys.stderr.write("Jätan vahele %s faili kuna logifaili lõpp oli %s\n" %
|
sys.stderr.write("Jätan vahele %s faili kuna logifaili lõpp oli %s\n" %
|
||||||
(path, file_end))
|
(path, file_end))
|
||||||
|
7
kaart.py → bin/top3
Normal file → Executable file
7
kaart.py → bin/top3
Normal file → Executable file
@ -8,13 +8,10 @@ from collections import Counter
|
|||||||
from lxml import etree
|
from lxml import etree
|
||||||
from lxml.cssselect import CSSSelector
|
from lxml.cssselect import CSSSelector
|
||||||
|
|
||||||
# apt install python-geoip python-numpy geoip-database
|
|
||||||
# dnf install python2-GeoIP
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
blank_map_path, = sys.argv[1:]
|
blank_map_path, = sys.argv[1:]
|
||||||
except ValueError:
|
except ValueError:
|
||||||
print "Anna argumentideks teed BlankMap-World6.svg ning access.log failideni"
|
print "Anna argumentideks tee BlankMap-World6.svg failini"
|
||||||
sys.exit(254)
|
sys.exit(254)
|
||||||
|
|
||||||
# Loe sisse värvimata kaardifail kasutades lxml moodulit
|
# Loe sisse värvimata kaardifail kasutades lxml moodulit
|
||||||
@ -50,7 +47,7 @@ for line in sys.stdin:
|
|||||||
for country, count in hits.items():
|
for country, count in hits.items():
|
||||||
# Interpoleeri külastuste arv vahemikus 0 kuni kõige enam külastusi saanud riik
|
# Interpoleeri külastuste arv vahemikus 0 kuni kõige enam külastusi saanud riik
|
||||||
# värvitoonide vahemikku 120 (roheline) kuni 0 (punane)
|
# värvitoonide vahemikku 120 (roheline) kuni 0 (punane)
|
||||||
hue = interp(count, [0, max(hits.values())], [120, 0])
|
hue = interp(count, [0, max(hits.values())], [180, 0])
|
||||||
|
|
||||||
# Leia XPath abil elemendid mille id attribuut on pandud riigikoodiks
|
# Leia XPath abil elemendid mille id attribuut on pandud riigikoodiks
|
||||||
for element in document.xpath("//*[@id='%s']" % country.lower()):
|
for element in document.xpath("//*[@id='%s']" % country.lower()):
|
52
nipid.md
Normal file
52
nipid.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Mõned vähem tuntud nipid käsureal
|
||||||
|
|
||||||
|
Kiirklahvid:
|
||||||
|
|
||||||
|
* Ctrl-L - tühjenda ekraan
|
||||||
|
* Ctrl-R - ajaloost käskude otsimiseks regulaaravaldisega
|
||||||
|
* Ctrl-D - terminalist väljumiseks
|
||||||
|
* Ctrl-C - hetkel käivale protsessile katkestamise (SIGINT) signaali saatmiseks
|
||||||
|
* Ctrl-Z - hetkel käivale protsessile pausi (SIGSTOP) signaali saatmiseks
|
||||||
|
* Ctrl-Vasak, Ctrl-Parem - Sõna kaupa navigeerimine käsus
|
||||||
|
* Home, End - Käsu algusess või lõppu navigeerimine
|
||||||
|
|
||||||
|
# Copy-paste Ctrl-D abil
|
||||||
|
|
||||||
|
Faili copy-paste terminali abil saab teha järgnevalt.
|
||||||
|
Käivita käsk:
|
||||||
|
|
||||||
|
cat > failinimi
|
||||||
|
|
||||||
|
Käsk jääb ootama sisendit standardsisendist, st klaviatuur antud juhul.
|
||||||
|
Kopeeri lõik soovitud failist ning aseta PuTTY puhul parema hiireklõpsuga.
|
||||||
|
Vajuta Ctrl-D et lõpetada asetamine. Ctrl-D tähendab käsureal EOF-i (end of file).
|
||||||
|
|
||||||
|
# Copy-paste EOF markeriga
|
||||||
|
|
||||||
|
Käivita käsk:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat << EOF > failinimi
|
||||||
|
```
|
||||||
|
|
||||||
|
Aseta soovitud sisu ning lõpetamiseks kirjuta EOF ning vajuta enter.
|
||||||
|
|
||||||
|
Siinkohal bash asendab $MUUTUJAD.
|
||||||
|
|
||||||
|
Kui soovid copy-paste sooritada nii et bash ei asendaks muutujaid:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat << \EOF > failinimi
|
||||||
|
```
|
||||||
|
|
||||||
|
Aseta sisu, kirjuta EOF ning vajuta Enter
|
||||||
|
|
||||||
|
# Failide loomine käsuga
|
||||||
|
|
||||||
|
Juhendite kirjutamisel tuleb abiks kui terve käsk koos sisuga on kopeeritav:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat << \EOF > failinimi
|
||||||
|
See on faili sisu
|
||||||
|
EOF
|
||||||
|
```
|
@ -6,6 +6,8 @@ Failis ```main.py``` on näide kuidas Apache2 logisid parsida ning raporteerida
|
|||||||
* Laadib ```requests``` mooduli abil alla BlankMap-World6.svg, värvib selle ära ```lxml``` mooduli abil ning salvestab top.svg faili sisse
|
* Laadib ```requests``` mooduli abil alla BlankMap-World6.svg, värvib selle ära ```lxml``` mooduli abil ning salvestab top.svg faili sisse
|
||||||
* Genereerib Bootstrap baasil koostatud veebilehe mallist template.html faili raport.html
|
* Genereerib Bootstrap baasil koostatud veebilehe mallist template.html faili raport.html
|
||||||
|
|
||||||
|
Tulemuse näidist saab kaeda aadressil https://media.k-space.ee/raport/raport.html
|
||||||
|
|
||||||
Sõltuvuste paigladamiseks:
|
Sõltuvuste paigladamiseks:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
Loading…
Reference in New Issue
Block a user