summaryrefslogtreecommitdiff
path: root/tasks/copy_rename_20_files_tail_env/solution/solution.py
blob: b1a9d14235eabc401ab6f18e33a337c365850da3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# SPDX-License-Identifier: AGPL-3.0-or-later

# preimenuj vse datoteke tako, da zamenjaš minuse s podčrtaji
def rename():
	import os
	for filename in os.listdir('.'):
		os.rename(filename, filename.replace('-', '_'))

# Napiši čim krajši ukaz, ki vse datoteke iz /home/user/mapa/mojimenik premakne v /home/user/novi
def mv_novi():
	import os
	for filename in os.listdir("/home/user/mapa/mojimenik/"):
		os.rename('/home/user/mapa/mojimenik/' + filename, '/home/user/novi/' + filename)

# Napiši ukaz, ki s pomočjo ukaza grep v datoteko "mama.txt" izpiše vse navade (ne skrite) datoteke v trenutnem imeniku, ki vsebujejo niz "mama", v datoteko "napake.txt" pa izpiše vse morebitne napake (npr. to, da so nekateri objekti v trenutnem imeniku dejansko imeniki ali napačne simbolične povezave)
def mama():
	import os
	import re
	import mmap
	mama = ''
	wrong = ''
	for filename in os.listdir('.'):
		try:
			f = open(filename, 'r+')
			data = mmap.mmap(f.fileno(), 0)
			if re.search('mama', data):
				mama = mama + filename + "\n"
		except ValueError:
			wrong = wrong + filename + "\n"
	open('mama.txt', 'w').write(mama)
	open('napake.txt', 'w').write(wrong)

# Napiši ukaz, ki bo 5s sledil vsebini /var/log/syslog. V primeru, da se v syslogu pojavi niz "zmeda", naj program izpiše "imam ga". Poleg tega naj program med sledenjem syslog-u odšteva od 5 do 1 (vsako sekundo naj se izpiše naslednja številka.
def checker():
	import time
	import re
	import mmap
	t = time.time() * 1000
	n = t
	
	f = open('/var/log/syslog', 'r+')
	data = mmap.mmap(f.fileno(), 0)
	me = re.findall('zmeda', data)
	
	c = len(me)
	for i in range(5, 0, -1):
		print(i)
		n += 1000
		while n > t:
			f = open('/var/log/syslog', 'r+')
			data = mmap.mmap(f.fileno(), 0)
			me = re.findall('zmeda', data)
			if len(me) > c:
				c = len(me)
				print('imam ga')
			t = time.time() * 1000

# Nastavi okoljsko spremenljivko TEST, da bo imela isto vrednost kot okoljska spremenljivka USER + število okoljskih spremenljivk, ki v imenu ali vrednosti ne vsebujejo besede TEST. Primer: polz37
def env():
	import os
	import re
	c = 0
	for i in os.environ:
		if not (re.search('TEST', i) or re.search('TEST', os.environ[i])):
			c = c + 1
	os.environ['TEST'] = os.environ['USER'] + repr(c)

# S pomočjo programa cURL shrani vsebino spletne strani www.google.com  v datoteko  z imenom website.txt
def googl():
	import urllib.request
	open('website.txt', 'w').write(urllib.request.urlopen('http://www.google.com').read())

# Napiši ukaz, ki bo število pojavitev značke <div> v datoteki website.txt dodal na konec te iste datoteke brez, da bi se ukaz zapisal v zgodovino ukazov "bash history"
def div():
	import re
	import mmap
	f = open('website.txt', 'r+')
	data = mmap.mmap(f.fileno(), 0)
	me = re.findall('<[^/<>]*div[^>]*>', data)
	open('website.txt', 'a+').write(repr(len(me)))

# Napiši ukaz brez uporabe programa cron, kateri 5 minut po izvedbi izpiše vsebino imenika v katerem se trenutno nahajaš
def sleep():
	import time
	import os
	time.sleep(300)
	print(os.listdir('.'))

# Napiši najkrajši ukaz, ki s pomočjo Pythona zažene preprost (integriran) HTTP strežnik kateri streže datoteke iz imenika iz katerega je bil pognan na vratih 8000
def server():
	import http.server
	import socketserver
	httpd = socketserver.TCPServer(("", 8000), http.server.SimpleHTTPRequestHandler)
	httpd.serve_forever()