<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csinihel</id>
	<title>ICO wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csinihel"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php/Special:Contributions/Csinihel"/>
	<updated>2026-05-07T04:13:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=40351</id>
		<title>Skript, mis otsib üles duplikaatfailid - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=40351"/>
		<updated>2011-10-24T20:17:38Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://stackoverflow.com/questions/2399196/finding-duplicate-files-by-content-across-multiple-directories&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=40346</id>
		<title>Skript, mis otsib üles duplikaatfailid - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=40346"/>
		<updated>2011-10-24T20:11:20Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_Samba_seadistamiseks_-_Python&amp;diff=23139</id>
		<title>Skript, Samba seadistamiseks - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_Samba_seadistamiseks_-_Python&amp;diff=23139"/>
		<updated>2011-02-07T09:21:42Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ülesande leiab siit:&amp;lt;br&amp;gt;&lt;br /&gt;
http://lauri.vosandi.eu/wiki/?page=python-kaugope&lt;br /&gt;
&lt;br /&gt;
Materjal, mida kasutatud töö tegemiseks:&amp;lt;br&amp;gt;&lt;br /&gt;
1)http://lauri.vosandi.eu/wiki/?page=python-for-beginners  (Välise paketi paigaldamist nõudvad näited &amp;gt; python-apt - Ubuntu pakettide paigaldamine)&lt;br /&gt;
&lt;br /&gt;
2)configparser&amp;lt;br&amp;gt;&lt;br /&gt;
http://docs.python.org/library/configparser.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.doughellmann.com/PyMOTW/ConfigParser/&amp;lt;br&amp;gt;&lt;br /&gt;
http://bytes.com/topic/python/answers/651758-python-configparser&amp;lt;br&amp;gt;&lt;br /&gt;
http://nullege.com/codes/search/ConfigParser.ConfigParser.read&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3)sys&amp;lt;br&amp;gt;&lt;br /&gt;
http://docs.python.org/library/sys.html&lt;br /&gt;
&lt;br /&gt;
4)subprocess&amp;lt;br&amp;gt;&lt;br /&gt;
http://docs.python.org/library/subprocess.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
#-*- coding: utf-8 -*-&lt;br /&gt;
# Tühikud konfifailis tekitavad probleeme :s&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import ConfigParser&lt;br /&gt;
from ConfigParser import RawConfigParser&lt;br /&gt;
import subprocess    &lt;br /&gt;
&lt;br /&gt;
config = ConfigParser.RawConfigParser()&lt;br /&gt;
config.read(&#039;smb.conf&#039;)&lt;br /&gt;
&lt;br /&gt;
#1. Kuvama hetkel välja jagatud kaustad&lt;br /&gt;
def showSectionsWithPath():&lt;br /&gt;
    for section in config.sections():&lt;br /&gt;
        if config.has_option(section, &#039;path&#039;):&lt;br /&gt;
            print &#039;Section &#039;, section, &#039; has path &#039;, config.get(section, &#039;path&#039;)&lt;br /&gt;
&lt;br /&gt;
#2. Lubama lisada uusi kaustu&lt;br /&gt;
#3. Taaskäivitama Samba teenuse peale seadistuste muutmist&lt;br /&gt;
def addSection():&lt;br /&gt;
    section_name = raw_input(&#039;Section name &#039;)&lt;br /&gt;
    print &#039;This is section name: &#039;, section_name&lt;br /&gt;
    config.add_section(section_name)&lt;br /&gt;
&lt;br /&gt;
    browseable = raw_input(&#039;Is browseable? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;browseable&#039;, browseable)&lt;br /&gt;
&lt;br /&gt;
    only_guest = raw_input(&#039;Is only guest? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;only guest&#039;, only_guest)&lt;br /&gt;
&lt;br /&gt;
    guest_ok = raw_input(&#039;Is guest ok? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;guest ok&#039;, guest_ok)&lt;br /&gt;
&lt;br /&gt;
    writeable = raw_input(&#039;Is writeable? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;writeable&#039;, writeable)&lt;br /&gt;
&lt;br /&gt;
    path = raw_input(&#039;Give ma a path &#039;)&lt;br /&gt;
    config.set(section_name, &#039;path&#039;, path)&lt;br /&gt;
&lt;br /&gt;
    public = raw_input(&#039;Is public? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;public&#039;, public)&lt;br /&gt;
&lt;br /&gt;
    with open(&#039;smb.conf&#039;, &#039;wb&#039;) as configfile:&lt;br /&gt;
        config.write(configfile)&lt;br /&gt;
    subprocess.call(&#039;/etc/init.d/samba restart&#039;, shell=True)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Hello my friend, what you want to do today?&lt;br /&gt;
if len(sys.argv) != 2: #&lt;br /&gt;
    print &#039;Argument is missing :(&#039;&lt;br /&gt;
    print &#039;Choose from: list, add&#039;&lt;br /&gt;
elif sys.argv[1] == &#039;list&#039;:&lt;br /&gt;
    showSectionsWithPath()&lt;br /&gt;
elif &#039;add&#039; == sys.argv[1]:&lt;br /&gt;
    addSection()&lt;br /&gt;
else:&lt;br /&gt;
    print &#039;Unknown input&#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_Samba_seadistamiseks_-_Python&amp;diff=23138</id>
		<title>Skript, Samba seadistamiseks - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_Samba_seadistamiseks_-_Python&amp;diff=23138"/>
		<updated>2011-02-07T09:20:31Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ülesande leiab siit: http:&amp;lt;br&amp;gt;&lt;br /&gt;
//lauri.vosandi.eu/wiki/?page=python-kaugope&lt;br /&gt;
&lt;br /&gt;
Materjal, mida kasutatud töö tegemiseks:&amp;lt;br&amp;gt;&lt;br /&gt;
1)http://lauri.vosandi.eu/wiki/?page=python-for-beginners  (Välise paketi paigaldamist nõudvad näited &amp;gt; python-apt - Ubuntu pakettide paigaldamine)&lt;br /&gt;
&lt;br /&gt;
2)configparser&amp;lt;br&amp;gt;&lt;br /&gt;
http://docs.python.org/library/configparser.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.doughellmann.com/PyMOTW/ConfigParser/&amp;lt;br&amp;gt;&lt;br /&gt;
http://bytes.com/topic/python/answers/651758-python-configparser&amp;lt;br&amp;gt;&lt;br /&gt;
http://nullege.com/codes/search/ConfigParser.ConfigParser.read&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3)sys&amp;lt;br&amp;gt;&lt;br /&gt;
http://docs.python.org/library/sys.html&lt;br /&gt;
&lt;br /&gt;
4)subprocess&amp;lt;br&amp;gt;&lt;br /&gt;
http://docs.python.org/library/subprocess.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
#-*- coding: utf-8 -*-&lt;br /&gt;
# Tühikud konfifailis tekitavad probleeme :s&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import ConfigParser&lt;br /&gt;
from ConfigParser import RawConfigParser&lt;br /&gt;
import subprocess    &lt;br /&gt;
&lt;br /&gt;
config = ConfigParser.RawConfigParser()&lt;br /&gt;
config.read(&#039;smb.conf&#039;)&lt;br /&gt;
&lt;br /&gt;
#1. Kuvama hetkel välja jagatud kaustad&lt;br /&gt;
def showSectionsWithPath():&lt;br /&gt;
    for section in config.sections():&lt;br /&gt;
        if config.has_option(section, &#039;path&#039;):&lt;br /&gt;
            print &#039;Section &#039;, section, &#039; has path &#039;, config.get(section, &#039;path&#039;)&lt;br /&gt;
&lt;br /&gt;
#2. Lubama lisada uusi kaustu&lt;br /&gt;
#3. Taaskäivitama Samba teenuse peale seadistuste muutmist&lt;br /&gt;
def addSection():&lt;br /&gt;
    section_name = raw_input(&#039;Section name &#039;)&lt;br /&gt;
    print &#039;This is section name: &#039;, section_name&lt;br /&gt;
    config.add_section(section_name)&lt;br /&gt;
&lt;br /&gt;
    browseable = raw_input(&#039;Is browseable? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;browseable&#039;, browseable)&lt;br /&gt;
&lt;br /&gt;
    only_guest = raw_input(&#039;Is only guest? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;only guest&#039;, only_guest)&lt;br /&gt;
&lt;br /&gt;
    guest_ok = raw_input(&#039;Is guest ok? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;guest ok&#039;, guest_ok)&lt;br /&gt;
&lt;br /&gt;
    writeable = raw_input(&#039;Is writeable? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;writeable&#039;, writeable)&lt;br /&gt;
&lt;br /&gt;
    path = raw_input(&#039;Give ma a path &#039;)&lt;br /&gt;
    config.set(section_name, &#039;path&#039;, path)&lt;br /&gt;
&lt;br /&gt;
    public = raw_input(&#039;Is public? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;public&#039;, public)&lt;br /&gt;
&lt;br /&gt;
    with open(&#039;smb.conf&#039;, &#039;wb&#039;) as configfile:&lt;br /&gt;
        config.write(configfile)&lt;br /&gt;
    subprocess.call(&#039;/etc/init.d/samba restart&#039;, shell=True)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Hello my friend, what you want to do today?&lt;br /&gt;
if len(sys.argv) != 2: #&lt;br /&gt;
    print &#039;Argument is missing :(&#039;&lt;br /&gt;
    print &#039;Choose from: list, add&#039;&lt;br /&gt;
elif sys.argv[1] == &#039;list&#039;:&lt;br /&gt;
    showSectionsWithPath()&lt;br /&gt;
elif &#039;add&#039; == sys.argv[1]:&lt;br /&gt;
    addSection()&lt;br /&gt;
else:&lt;br /&gt;
    print &#039;Unknown input&#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_Samba_seadistamiseks_-_Python&amp;diff=23048</id>
		<title>Skript, Samba seadistamiseks - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_Samba_seadistamiseks_-_Python&amp;diff=23048"/>
		<updated>2011-02-03T20:18:00Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Created page with &amp;#039;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt; #!/usr/bin/python #-*- coding: utf-8 -*- # Tühikud konfifailis tekitavad probleeme :s  import sys import ConfigParser from ConfigParser import RawConfigPa…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
#-*- coding: utf-8 -*-&lt;br /&gt;
# Tühikud konfifailis tekitavad probleeme :s&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import ConfigParser&lt;br /&gt;
from ConfigParser import RawConfigParser&lt;br /&gt;
import subprocess    &lt;br /&gt;
&lt;br /&gt;
config = ConfigParser.RawConfigParser()&lt;br /&gt;
config.read(&#039;smb.conf&#039;)&lt;br /&gt;
&lt;br /&gt;
#1. Kuvama hetkel välja jagatud kaustad&lt;br /&gt;
def showSectionsWithPath():&lt;br /&gt;
    for section in config.sections():&lt;br /&gt;
        if config.has_option(section, &#039;path&#039;):&lt;br /&gt;
            print &#039;Section &#039;, section, &#039; has path &#039;, config.get(section, &#039;path&#039;)&lt;br /&gt;
&lt;br /&gt;
#2. Lubama lisada uusi kaustu&lt;br /&gt;
#3. Taaskäivitama Samba teenuse peale seadistuste muutmist&lt;br /&gt;
def addSection():&lt;br /&gt;
    section_name = raw_input(&#039;Section name &#039;)&lt;br /&gt;
    print &#039;This is section name: &#039;, section_name&lt;br /&gt;
    config.add_section(section_name)&lt;br /&gt;
&lt;br /&gt;
    browseable = raw_input(&#039;Is browseable? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;browseable&#039;, browseable)&lt;br /&gt;
&lt;br /&gt;
    only_guest = raw_input(&#039;Is only guest? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;only guest&#039;, only_guest)&lt;br /&gt;
&lt;br /&gt;
    guest_ok = raw_input(&#039;Is guest ok? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;guest ok&#039;, guest_ok)&lt;br /&gt;
&lt;br /&gt;
    writeable = raw_input(&#039;Is writeable? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;writeable&#039;, writeable)&lt;br /&gt;
&lt;br /&gt;
    path = raw_input(&#039;Give ma a path &#039;)&lt;br /&gt;
    config.set(section_name, &#039;path&#039;, path)&lt;br /&gt;
&lt;br /&gt;
    public = raw_input(&#039;Is public? (yes/no) &#039;)&lt;br /&gt;
    config.set(section_name, &#039;public&#039;, public)&lt;br /&gt;
&lt;br /&gt;
    with open(&#039;smb.conf&#039;, &#039;wb&#039;) as configfile:&lt;br /&gt;
        config.write(configfile)&lt;br /&gt;
    subprocess.call(&#039;/etc/init.d/samba restart&#039;, shell=True)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Hello my friend, what you want to do today?&lt;br /&gt;
if len(sys.argv) != 2: #&lt;br /&gt;
    print &#039;Argument is missing :(&#039;&lt;br /&gt;
    print &#039;Choose from: list, add&#039;&lt;br /&gt;
elif sys.argv[1] == &#039;list&#039;:&lt;br /&gt;
    showSectionsWithPath()&lt;br /&gt;
elif &#039;add&#039; == sys.argv[1]:&lt;br /&gt;
    addSection()&lt;br /&gt;
else:&lt;br /&gt;
    print &#039;Unknown input&#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=23047</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=23047"/>
		<updated>2011-02-03T20:15:59Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!#/bin/bash&lt;br /&gt;
sed -ne &#039;/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}&#039; /var/lib/dpkg/status | sort -rn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid BASH]]&lt;br /&gt;
&lt;br /&gt;
[[Skript leiab dublikaat failid Python]]&lt;br /&gt;
&lt;br /&gt;
[[Skript, mis leiab application log&#039;ist viimase nädala joosul tehtud &amp;quot;Error&amp;quot; tüüpi kirjed ja edastab need administraatorile e-kirjana Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute kontroll]] - BASH&lt;br /&gt;
*[[XML dokumentide parsija]] - Python&lt;br /&gt;
*[[Teenusemonitor]] - Powershell&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib - Python]]&lt;br /&gt;
* [[Skript, mis küsib ACL-i objekte AD-st - Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
* bash: [[skript, mis teeb midagi vajalikku hunniku graafikafailidega]]&lt;br /&gt;
* python: [[ dhcp.leases kontrollimise skript ]]&lt;br /&gt;
* powershell: [[ skript, mis teeb midagi printeritega ]]&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - BASH]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - Python]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Skript, mis leiab etteantud kataloogist või kettalt samanimelised failid ja väljastab nende nimekirja- PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - BASH]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada ja neid sealt ka eemaldada - PowerShell]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, Samba seadistamiseks - Python]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash Bash]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Python Python]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell Poweshell]&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript, mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;br /&gt;
*[[Skript, mis otsib pilte ja loob kaustad aasta järgi ning tõstab vastava aasta pildi vastava aasta kausta-Python]]&lt;br /&gt;
*[[Skript, mis teeb teatud kaustast backupi ja kustutab üle 30 päeva vanad backupid ära-BASH]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_ja_neid_sealt_ka_eemaldada_-_PowerShell&amp;diff=23010</id>
		<title>Skript, millega saab public folderitesse õiguseid lisada ja neid sealt ka eemaldada - PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_ja_neid_sealt_ka_eemaldada_-_PowerShell&amp;diff=23010"/>
		<updated>2011-01-31T12:01:59Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Created page with &amp;#039;&amp;lt;source lang = &amp;quot;powershell&amp;quot;&amp;gt; #Skript, millega saab lisada public folderitesse õiguseid #Chris Sinihelm, AK41, 2010 #List public folderitest + kuupäev $i = Read-Host &amp;quot;Kas sa tah…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
#Skript, millega saab lisada public folderitesse õiguseid&lt;br /&gt;
#Chris Sinihelm, AK41, 2010&lt;br /&gt;
#List public folderitest + kuupäev&lt;br /&gt;
$i = Read-Host &amp;quot;Kas sa tahad listi public folderitest? Jah/Ei&amp;quot;&lt;br /&gt;
if ($i -eq &#039;Jah&#039;){&lt;br /&gt;
    Get-Date &amp;gt;  publicfolders.txt&lt;br /&gt;
    Get-PublicFolder -Recurse | Format-List Name &amp;gt;&amp;gt;  publicfolders.txt&lt;br /&gt;
    Write-Host &amp;quot;List public folderitest on loodud faili publicfolders.txt&amp;quot;  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$j = Read-Host &amp;quot;Kas sa tahad õiguseid lisada/eemaldada&amp;quot;&lt;br /&gt;
if ($j -eq &#039;lisada&#039;){   &lt;br /&gt;
    $kaustanimi = read-host &amp;quot;Sisesta public folderi nimi kujul \peakaust\folder nimi&amp;quot;&lt;br /&gt;
    #Kellele õiguseid tahetakse&lt;br /&gt;
    $kasutajaalias = read-host &amp;quot;Sisesta tunnuse ALIAS, kellele õiguseid muudetakse: &amp;quot;&lt;br /&gt;
    #Mis õiguseid tahetakse&lt;br /&gt;
    $oigused = read-host &amp;quot;Vali õigused, mis lisatakse: &lt;br /&gt;
    * None - FolderVisible&lt;br /&gt;
    * Owner - CreateItems, ReadItems, CreateSubfolders, FolderOwner, Folder Contact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingEditor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * Editor - CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingAuthor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * Author - CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * NonEditingAuthor - CreateItems, ReadItems, FolderVisible&lt;br /&gt;
    * Reviewer - ReadItems, FolderVisible&lt;br /&gt;
    * Contributor - CreateItems, FolderVisible&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    #Õiguste lisamine&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        Add-PublicFolderClientPermission -Identity &amp;quot;$kaustanimi&amp;quot; -User &amp;quot;$kasutajaalias&amp;quot; -AccessRights $oigused;&lt;br /&gt;
        #Kuvatakse kellele ja mis õigused on antud.&lt;br /&gt;
        Write-Host &amp;quot;Järgnevale kasutajale: &amp;quot; &lt;br /&gt;
        $kasutajaalias &lt;br /&gt;
        Write-Host &amp;quot;Anti järgnevad õigused: &amp;quot;&lt;br /&gt;
        $oigused &lt;br /&gt;
        Write-Host &amp;quot;Sellisesse kausta:&amp;quot;&lt;br /&gt;
        $kaustanimi&lt;br /&gt;
        Write-Host &amp;quot;****************&amp;quot;&lt;br /&gt;
        #Mis õigused antud kausta hetkel on&lt;br /&gt;
        $w = Get-PublicFolderClientPermission &amp;quot;$kaustanimi&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;Hetkel on antud kausta järgnevad õigused: &amp;quot; &lt;br /&gt;
        $w&lt;br /&gt;
    }&lt;br /&gt;
    Catch&lt;br /&gt;
    {&lt;br /&gt;
        write-host &amp;quot;Midagi läks viltu (Error:&amp;quot;  $_.Exception.Message &amp;quot;)&amp;quot;&lt;br /&gt;
        write-host&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elseif ($j -eq &#039;eemaldada&#039;){&lt;br /&gt;
    $kaustanimi = read-host &amp;quot;Sisesta public folderi nimi kujul \peakaust\folder nimi&amp;quot;&lt;br /&gt;
    $kasutajaalias = read-host &amp;quot;Sisesta tunnuse ALIAS, kellele õiguseid muudetakse: &amp;quot;&lt;br /&gt;
    $oigused = read-host &amp;quot;Vali õigused, mis eemaldatakse: &lt;br /&gt;
    * None - FolderVisible&lt;br /&gt;
    * Owner - CreateItems, ReadItems, CreateSubfolders, FolderOwner, Folder Contact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingEditor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * Editor - CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingAuthor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * Author - CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * NonEditingAuthor - CreateItems, ReadItems, FolderVisible&lt;br /&gt;
    * Reviewer - ReadItems, FolderVisible&lt;br /&gt;
    * Contributor - CreateItems, FolderVisible&amp;quot;&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        Remove-PublicFolderClientPermission -Identity &amp;quot;$kaustanimi&amp;quot; -User &amp;quot;$kasutajaalias&amp;quot; -AccessRights $oigused;&lt;br /&gt;
        #Mis õigused antud kausta hetkel on&lt;br /&gt;
        $w = Get-PublicFolderClientPermission &amp;quot;$kaustanimi&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;Hetkel on antud kausta järgnevad õigused: &amp;quot; &lt;br /&gt;
        $w&lt;br /&gt;
    }&lt;br /&gt;
    Catch&lt;br /&gt;
    {&lt;br /&gt;
        write-host &amp;quot;Midagi läks viltu (Error:&amp;quot;  $_.Exception.Message &amp;quot;)&amp;quot;&lt;br /&gt;
        write-host&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}else{&lt;br /&gt;
    Write-Host &amp;quot;Midagi ei tehtud&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=23009</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=23009"/>
		<updated>2011-01-31T11:59:17Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!#/bin/bash&lt;br /&gt;
sed -ne &#039;/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}&#039; /var/lib/dpkg/status | sort -rn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid BASH]]&lt;br /&gt;
&lt;br /&gt;
[[Skript leiab dublikaat failid Python]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute kontroll]] - BASH&lt;br /&gt;
*[[XML dokumentide parsija]] - Python&lt;br /&gt;
*[[Teenusemonitor]] - Powershell&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib - Python]]&lt;br /&gt;
* [[Skript, mis küsib ACL-i objekte AD-st - Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
* bash: [[skript, mis teeb midagi vajalikku hunniku graafikafailidega]]&lt;br /&gt;
* python: [[ dhcp.leases kontrollimise skript ]]&lt;br /&gt;
* powershell: [[ skript, mis teeb midagi printeritega ]]&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - BASH]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - Python]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Skript, mis leiab etteantud kataloogist või kettalt samanimelised failid ja väljastab nende nimekirja- PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - BASH]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada ja neid sealt ka eemaldada - PowerShell]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, mis otsib üles duplikaatfailid - Python]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash Bash]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Python Python]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell Poweshell]&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript, mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;br /&gt;
*[[Skript, mis otsib pilte ja loob kaustad aasta järgi ning tõstab vastava aasta pildi vastava aasta kausta-Python]]&lt;br /&gt;
*[[Skript, mis teeb teatud kaustast backupi ja kustutab üle 30 päeva vanad backupid ära-BASH]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_-_PowerShell&amp;diff=23008</id>
		<title>Skript, millega saab public folderitesse õiguseid lisada - PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_-_PowerShell&amp;diff=23008"/>
		<updated>2011-01-31T11:58:07Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skript, millega saab public folderitesse õiguseid lisada ja neid sealt ka eemaldada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
#Skript, millega saab lisada public folderitesse õiguseid&lt;br /&gt;
#Chris Sinihelm, AK41, 2010&lt;br /&gt;
#List public folderitest + kuupäev&lt;br /&gt;
$i = Read-Host &amp;quot;Kas sa tahad listi public folderitest? Jah/Ei&amp;quot;&lt;br /&gt;
if ($i -eq &#039;Jah&#039;){&lt;br /&gt;
    Get-Date &amp;gt;  publicfolders.txt&lt;br /&gt;
    Get-PublicFolder -Recurse | Format-List Name &amp;gt;&amp;gt;  publicfolders.txt&lt;br /&gt;
    Write-Host &amp;quot;List public folderitest on loodud faili publicfolders.txt&amp;quot;  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$j = Read-Host &amp;quot;Kas sa tahad õiguseid lisada/eemaldada&amp;quot;&lt;br /&gt;
if ($j -eq &#039;lisada&#039;){   &lt;br /&gt;
    $kaustanimi = read-host &amp;quot;Sisesta public folderi nimi kujul \peakaust\folder nimi&amp;quot;&lt;br /&gt;
    #Kellele õiguseid tahetakse&lt;br /&gt;
    $kasutajaalias = read-host &amp;quot;Sisesta tunnuse ALIAS, kellele õiguseid muudetakse: &amp;quot;&lt;br /&gt;
    #Mis õiguseid tahetakse&lt;br /&gt;
    $oigused = read-host &amp;quot;Vali õigused, mis lisatakse: &lt;br /&gt;
    * None - FolderVisible&lt;br /&gt;
    * Owner - CreateItems, ReadItems, CreateSubfolders, FolderOwner, Folder Contact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingEditor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * Editor - CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingAuthor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * Author - CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * NonEditingAuthor - CreateItems, ReadItems, FolderVisible&lt;br /&gt;
    * Reviewer - ReadItems, FolderVisible&lt;br /&gt;
    * Contributor - CreateItems, FolderVisible&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    #Õiguste lisamine&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        Add-PublicFolderClientPermission -Identity &amp;quot;$kaustanimi&amp;quot; -User &amp;quot;$kasutajaalias&amp;quot; -AccessRights $oigused;&lt;br /&gt;
        #Kuvatakse kellele ja mis õigused on antud.&lt;br /&gt;
        Write-Host &amp;quot;Järgnevale kasutajale: &amp;quot; &lt;br /&gt;
        $kasutajaalias &lt;br /&gt;
        Write-Host &amp;quot;Anti järgnevad õigused: &amp;quot;&lt;br /&gt;
        $oigused &lt;br /&gt;
        Write-Host &amp;quot;Sellisesse kausta:&amp;quot;&lt;br /&gt;
        $kaustanimi&lt;br /&gt;
        Write-Host &amp;quot;****************&amp;quot;&lt;br /&gt;
        #Mis õigused antud kausta hetkel on&lt;br /&gt;
        $w = Get-PublicFolderClientPermission &amp;quot;$kaustanimi&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;Hetkel on antud kausta järgnevad õigused: &amp;quot; &lt;br /&gt;
        $w&lt;br /&gt;
    }&lt;br /&gt;
    Catch&lt;br /&gt;
    {&lt;br /&gt;
        write-host &amp;quot;Midagi läks viltu (Error:&amp;quot;  $_.Exception.Message &amp;quot;)&amp;quot;&lt;br /&gt;
        write-host&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elseif ($j -eq &#039;eemaldada&#039;){&lt;br /&gt;
    $kaustanimi = read-host &amp;quot;Sisesta public folderi nimi kujul \peakaust\folder nimi&amp;quot;&lt;br /&gt;
    $kasutajaalias = read-host &amp;quot;Sisesta tunnuse ALIAS, kellele õiguseid muudetakse: &amp;quot;&lt;br /&gt;
    $oigused = read-host &amp;quot;Vali õigused, mis eemaldatakse: &lt;br /&gt;
    * None - FolderVisible&lt;br /&gt;
    * Owner - CreateItems, ReadItems, CreateSubfolders, FolderOwner, Folder Contact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingEditor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * Editor - CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
    * PublishingAuthor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * Author - CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
    * NonEditingAuthor - CreateItems, ReadItems, FolderVisible&lt;br /&gt;
    * Reviewer - ReadItems, FolderVisible&lt;br /&gt;
    * Contributor - CreateItems, FolderVisible&amp;quot;&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        Remove-PublicFolderClientPermission -Identity &amp;quot;$kaustanimi&amp;quot; -User &amp;quot;$kasutajaalias&amp;quot; -AccessRights $oigused;&lt;br /&gt;
        #Mis õigused antud kausta hetkel on&lt;br /&gt;
        $w = Get-PublicFolderClientPermission &amp;quot;$kaustanimi&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;Hetkel on antud kausta järgnevad õigused: &amp;quot; &lt;br /&gt;
        $w&lt;br /&gt;
    }&lt;br /&gt;
    Catch&lt;br /&gt;
    {&lt;br /&gt;
        write-host &amp;quot;Midagi läks viltu (Error:&amp;quot;  $_.Exception.Message &amp;quot;)&amp;quot;&lt;br /&gt;
        write-host&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}else{&lt;br /&gt;
    Write-Host &amp;quot;Midagi ei tehtud&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22946</id>
		<title>Skript, mis otsib üles duplikaatfailid - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22946"/>
		<updated>2011-01-30T14:01:28Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Näeb välja nagu copy-pasta: http://stackoverflow.com/questions/2399196/finding-duplicate-files-by-content-across-multiple-directories sellisel juhul oleks tore kui viidataks ka :)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
#Skript leidmaks duplikaatfailid&lt;br /&gt;
#Chris Sinihelm, AK41, 2010&lt;br /&gt;
import hashlib&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
#Faili hashi lugemine&lt;br /&gt;
def sha(filename):&lt;br /&gt;
    d = hashlib.sha512()&lt;br /&gt;
    try:&lt;br /&gt;
        d.update(open(filename).read())&lt;br /&gt;
    except Exception,e:&lt;br /&gt;
        print e&lt;br /&gt;
    else:&lt;br /&gt;
        return d.hexdigest()&lt;br /&gt;
&lt;br /&gt;
#Sõnastiku loomine&lt;br /&gt;
s={}&lt;br /&gt;
&lt;br /&gt;
#Kus kohast faile otsitakse&lt;br /&gt;
path = raw_input (&amp;quot;Sisesta koht, kus kohast duplikaatfaile otsitakse: &amp;quot;)&lt;br /&gt;
print &amp;quot;Sisestasid &amp;quot;, path&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;Jalutame läbi&amp;quot; etteantud pathil asuvad failid&lt;br /&gt;
for r,d,f in os.walk(path):&lt;br /&gt;
    for files in f:&lt;br /&gt;
        filename=os.path.join(r,files)&lt;br /&gt;
        #Koostame failist hashi&lt;br /&gt;
        digest=sha(filename)&lt;br /&gt;
        #Kontrollime, kas sellise sisuga/hashiga fail on sõnastikus&lt;br /&gt;
        if not s.has_key(digest):&lt;br /&gt;
            #Lisame hashi sõnastikku&lt;br /&gt;
            s[digest]=filename&lt;br /&gt;
        else:&lt;br /&gt;
            #Kuulutame leitud duplikaatsisuga failidest&lt;br /&gt;
            print &amp;quot;Järgnevad on duplikaat failid: %s &amp;lt;==&amp;gt; %s &amp;quot; %( filename, s[digest])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_BASH&amp;diff=22933</id>
		<title>Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - BASH</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_BASH&amp;diff=22933"/>
		<updated>2011-01-29T13:36:20Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#Skript, mis tõstab kõik väikesed .txt failid ühte folderisse&lt;br /&gt;
#Chris Sinihelm, AK41, 2010&lt;br /&gt;
echo &amp;quot;Kus kohast soovid otsida?&amp;quot;&lt;br /&gt;
read FROM_DIR&lt;br /&gt;
cd $FROM_DIR&lt;br /&gt;
echo &amp;quot;Kuhu tahad tõsta&amp;quot;&lt;br /&gt;
read TO_DIR&lt;br /&gt;
for f in $(find . -type f -name &#039;*.txt&#039; -size -100k);&lt;br /&gt;
do&lt;br /&gt;
	#echo f&lt;br /&gt;
	mv -i $f $TO_DIR;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
****************&lt;br /&gt;
või:&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Kus kohast soovid otsida?&amp;quot;&lt;br /&gt;
read FROM_DIR&lt;br /&gt;
echo &amp;quot;Kuhu tahad tõsta&amp;quot;&lt;br /&gt;
read TO_DIR&lt;br /&gt;
for f in $(find $FROM_DIR -type f -regex &amp;quot;..txt$&amp;quot;);&lt;br /&gt;
do&lt;br /&gt;
#echo $f&lt;br /&gt;
mv $f $TO_DIR;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_-_PowerShell&amp;diff=22932</id>
		<title>Skript, millega saab public folderitesse õiguseid lisada - PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_-_PowerShell&amp;diff=22932"/>
		<updated>2011-01-29T13:35:32Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esialgu saab antud asjaga ainult õiguseid lisada.&lt;br /&gt;
Kui jõuan, kirjutan juurde ka õiguste eemaldamise variandi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
#Skript, millega saab lisada public folderitesse õiguseid&lt;br /&gt;
#Chris Sinihelm, AK41, 2010&lt;br /&gt;
#List public folderitest + kuupäev&lt;br /&gt;
$i = Read-Host &amp;quot;Kas sa tahad listi public folderitest? Jah/Ei&amp;quot;&lt;br /&gt;
if ($i -eq &#039;Jah&#039;){&lt;br /&gt;
    Get-Date &amp;gt;  publicfolders.txt&lt;br /&gt;
    Get-PublicFolder -Recurse | Format-List Name &amp;gt;&amp;gt;  publicfolders.txt&lt;br /&gt;
    Write-Host &amp;quot;List public folderitest on loodud faili publicfolders.txt&amp;quot;&lt;br /&gt;
}else{&lt;br /&gt;
#Kui tead juba, kuhu õiguseid tahad&lt;br /&gt;
    $kaustanimi = read-host &amp;quot;Sisesta public folderi nimi kujul \peakaust\folder nimi&amp;quot;}&lt;br /&gt;
#Mis õigused antud kausta hetkel on&lt;br /&gt;
#$w = Get-PublicFolderClientPermission &amp;quot;$kaustanimi&amp;quot; | format-list&lt;br /&gt;
#Write-Host &amp;quot;Hetkel on antud kausta järgnevad õigused: &amp;quot; &lt;br /&gt;
#$w&lt;br /&gt;
#Kellele õiguseid tahetakse&lt;br /&gt;
$kasutajaalias = read-host &amp;quot;Sisesta tunnuse ALIAS, kellele õiguseid muudetakse: &amp;quot;&lt;br /&gt;
#Mis õiguseid tahetakse&lt;br /&gt;
$oigused = read-host &amp;quot;Vali õigused, mis lisatakse: &lt;br /&gt;
* None - FolderVisible&lt;br /&gt;
* Owner - CreateItems, ReadItems, CreateSubfolders, FolderOwner, Folder Contact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
* PublishingEditor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
* Editor - CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
* PublishingAuthor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
* Author - CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
* NonEditingAuthor - CreateItems, ReadItems, FolderVisible&lt;br /&gt;
* Reviewer - ReadItems, FolderVisible&lt;br /&gt;
* Contributor - CreateItems, FolderVisible&amp;quot;&lt;br /&gt;
#Õiguste lisamine&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    Add-PublicFolderClientPermission -Identity &amp;quot;$kaustanimi&amp;quot; -User &amp;quot;$kasutajaalias&amp;quot; -AccessRights $oigused;&lt;br /&gt;
    #Kuvatakse kellele ja mis õigused on antud.&lt;br /&gt;
    Write-Host &amp;quot;Järgnevale kasutajale: &amp;quot; &lt;br /&gt;
    $kasutajaalias &lt;br /&gt;
    Write-Host &amp;quot;Anti järgnevad õigused: &amp;quot;&lt;br /&gt;
    $oigused &lt;br /&gt;
    Write-Host &amp;quot;Sellisesse kausta:&amp;quot;&lt;br /&gt;
    $kaustanimi&lt;br /&gt;
}&lt;br /&gt;
Catch&lt;br /&gt;
{&lt;br /&gt;
    write-host &amp;quot;Midagi läks viltu (Error:&amp;quot;  $_.Exception.Message &amp;quot;)&amp;quot;&lt;br /&gt;
    write-host&lt;br /&gt;
}&lt;br /&gt;
finally &lt;br /&gt;
{ }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22931</id>
		<title>Skript, mis otsib üles duplikaatfailid - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22931"/>
		<updated>2011-01-29T13:27:34Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
#Skript leidmaks duplikaatfailid&lt;br /&gt;
#Chris Sinihelm, AK41, 2010&lt;br /&gt;
import hashlib&lt;br /&gt;
import os&lt;br /&gt;
def sha(filename):&lt;br /&gt;
    d = hashlib.sha512()&lt;br /&gt;
    try:&lt;br /&gt;
        d.update(open(filename).read())&lt;br /&gt;
    except Exception,e:&lt;br /&gt;
        print e&lt;br /&gt;
    else:&lt;br /&gt;
        return d.hexdigest()&lt;br /&gt;
s={}&lt;br /&gt;
path = raw_input (&amp;quot;Sisesta koht, kus kohast duplikaatfaile otsitakse: &amp;quot;)&lt;br /&gt;
print &amp;quot;Sisestasid &amp;quot;, path&lt;br /&gt;
for r,d,f in os.walk(path):&lt;br /&gt;
    for files in f:&lt;br /&gt;
        filename=os.path.join(r,files)&lt;br /&gt;
        digest=sha(filename)&lt;br /&gt;
        if not s.has_key(digest):&lt;br /&gt;
            s[digest]=filename&lt;br /&gt;
        else:&lt;br /&gt;
            print &amp;quot;Järgnevad on duplikaat failid: %s &amp;lt;==&amp;gt; %s &amp;quot; %( filename, s[digest])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22917</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22917"/>
		<updated>2011-01-28T10:32:04Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!#/bin/bash&lt;br /&gt;
sed -ne &#039;/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}&#039; /var/lib/dpkg/status | sort -rn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute kontroll]] - BASH&lt;br /&gt;
*[[XML dokumentide parsija]] - Python&lt;br /&gt;
*[[Teenusemonitor]] - Powershell&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib - Python]]&lt;br /&gt;
* [[Skript, mis küsib ACL-i objekte AD-st - Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
* bash: [[skript, mis teeb midagi vajalikku hunniku graafikafailidega]]&lt;br /&gt;
* python: -&lt;br /&gt;
* powershell: -&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - BASH]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - Python]]&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - BASH]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, mis otsib üles duplikaatfailid - Python]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash Bash]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Python Python]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell Poweshell]&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript, mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;br /&gt;
*[[Skript, mis otsib pilte ja loob kaustad aasta järgi ning tõstab vastava aasta pildi vastava aasta kausta-Python]]&lt;br /&gt;
*[[Skript, mis teeb teatud kaustast backupi ja kustutab üle 30 päeva vanad backupid ära-BASH]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_ja_kustutab_need_-_Python&amp;diff=22913</id>
		<title>Skript, mis otsib üles duplikaatfailid ja kustutab need - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_ja_kustutab_need_-_Python&amp;diff=22913"/>
		<updated>2011-01-28T10:27:10Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import hashlib&lt;br /&gt;
import os &lt;br /&gt;
def remove_duplicates(dir):&lt;br /&gt;
   unique = []&lt;br /&gt;
   for filename in os.listdir(dir)&lt;br /&gt;
      if os.path.isfile(filename):&lt;br /&gt;
        filehash = md5.md5(file(filename).read()).hexdigest()&lt;br /&gt;
        if filehash not in unique: unique.append(filehash)&lt;br /&gt;
        else: os.remove(filename)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_ja_kustutab_need_-_Python&amp;diff=22912</id>
		<title>Skript, mis otsib üles duplikaatfailid ja kustutab need - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_ja_kustutab_need_-_Python&amp;diff=22912"/>
		<updated>2011-01-28T10:26:41Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Created page with &amp;#039;#!/usr/bin/python # -*- coding: utf-8 -*- import hashlib import os  def remove_duplicates(dir):    unique = []    for filename in os.listdir(dir)       if os.path.isfile(filename…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import hashlib&lt;br /&gt;
import os &lt;br /&gt;
def remove_duplicates(dir):&lt;br /&gt;
   unique = []&lt;br /&gt;
   for filename in os.listdir(dir)&lt;br /&gt;
      if os.path.isfile(filename):&lt;br /&gt;
        filehash = md5.md5(file(filename).read()).hexdigest()&lt;br /&gt;
        if filehash not in unique: unique.append(filehash)&lt;br /&gt;
        else: os.remove(filename)&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22911</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22911"/>
		<updated>2011-01-28T10:25:35Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!#/bin/bash&lt;br /&gt;
sed -ne &#039;/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}&#039; /var/lib/dpkg/status | sort -rn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute kontroll]] - BASH&lt;br /&gt;
*[[XML dokumentide parsija]] - Python&lt;br /&gt;
*[[Teenusemonitor]] - Powershell&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib - Python]]&lt;br /&gt;
* [[Skript, mis küsib ACL-i objekte AD-st - Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
* bash: [[skript, mis teeb midagi vajalikku hunniku graafikafailidega]]&lt;br /&gt;
* python: -&lt;br /&gt;
* powershell: -&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - BASH]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Skript mis otsib kõik pildi,video,muusika,dokumendi failid ja jagab need kaustadesse - Python]]&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - BASH]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, mis otsib üles duplikaatfailid ja kustutab need - Python]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash Bash]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Python Python]&lt;br /&gt;
* [http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell Poweshell]&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript, mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;br /&gt;
*[[Skript, mis otsib pilte ja loob kaustad aasta järgi ning tõstab vastava aasta pildi vastava aasta kausta-Python]]&lt;br /&gt;
*[[Skript, mis teeb teatud kaustast backupi ja kustutab üle 30 päeva vanad backupid ära-BASH]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22910</id>
		<title>Skript, mis otsib üles duplikaatfailid - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22910"/>
		<updated>2011-01-28T10:23:03Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Midagi sellist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf&lt;br /&gt;
import hashlib&lt;br /&gt;
import os &lt;br /&gt;
def remove_duplicates(dir):&lt;br /&gt;
   unique = []&lt;br /&gt;
   for filename in os.listdir(dir)&lt;br /&gt;
      if os.path.isfile(filename):&lt;br /&gt;
        filehash = md5.md5(file(filename).read()).hexdigest()&lt;br /&gt;
        if filehash not in unique: unique.append(filehash)&lt;br /&gt;
        else: os.remove(filename)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22907</id>
		<title>Skript, mis otsib üles duplikaatfailid - Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_otsib_%C3%BCles_duplikaatfailid_-_Python&amp;diff=22907"/>
		<updated>2011-01-28T10:18:58Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Created page with &amp;#039;Midagi sellist  &amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt; #!/usr/bin/python # -*- coding: utf import hashlib import os  def remove_duplicates(dir):    unique = []    for filename in os.listdir(di…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Midagi sellist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf&lt;br /&gt;
import hashlib&lt;br /&gt;
import os &lt;br /&gt;
def remove_duplicates(dir):&lt;br /&gt;
   unique = []&lt;br /&gt;
   for filename in os.listdir(dir)&lt;br /&gt;
      if os.path.isfile(filename):&lt;br /&gt;
        filehash = md5.md5(file(filename).read()).hexdigest()&lt;br /&gt;
        if filehash not in unique: unique.append(filehash)&lt;br /&gt;
        else: os.remove(filen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_BASH&amp;diff=22904</id>
		<title>Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - BASH</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_BASH&amp;diff=22904"/>
		<updated>2011-01-28T10:15:22Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Created page with &amp;#039;&amp;lt;source lang = &amp;quot;bash&amp;quot;&amp;gt; #!/bin/bash echo &amp;quot;Kus kohast soovid otsida?&amp;quot; read FROM_DIR cd $FROM_DIR echo &amp;quot;Kuhu tahad tõsta&amp;quot; read TO_DIR for f in $(find . -type f -name &amp;#039;*.txt&amp;#039; -size …&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Kus kohast soovid otsida?&amp;quot;&lt;br /&gt;
read FROM_DIR&lt;br /&gt;
cd $FROM_DIR&lt;br /&gt;
echo &amp;quot;Kuhu tahad tõsta&amp;quot;&lt;br /&gt;
read TO_DIR&lt;br /&gt;
for f in $(find . -type f -name &#039;*.txt&#039; -size -100k);&lt;br /&gt;
do&lt;br /&gt;
	#echo f&lt;br /&gt;
	mv -i $f $TO_DIR;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
****************&lt;br /&gt;
või:&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Kus kohast soovid otsida?&amp;quot;&lt;br /&gt;
read FROM_DIR&lt;br /&gt;
echo &amp;quot;Kuhu tahad tõsta&amp;quot;&lt;br /&gt;
read TO_DIR&lt;br /&gt;
for f in $(find $FROM_DIR -type f -regex &amp;quot;..txt$&amp;quot;);&lt;br /&gt;
do&lt;br /&gt;
#echo $f&lt;br /&gt;
mv $f $TO_DIR;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22822</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22822"/>
		<updated>2011-01-27T19:09:47Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!#/bin/bash&lt;br /&gt;
sed -ne &#039;/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}&#039; /var/lib/dpkg/status | sort -rn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[Teenusemonitor]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib - Python]]&lt;br /&gt;
* [[Skript, mis küsib ACL-i objekte AD-st - Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
Midagi mailiserveri logide põhjal?&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
Skript mis otsib kõik pildi,video,muusika,dokumendid ja jagab need kaustadesse.&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - BASH]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, mis otsib üles duplikaatfailid - Python]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaudu(lävend võiks näiteks olla 10 ebaõnnestunud katset) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;br /&gt;
&lt;br /&gt;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&lt;br /&gt;
&lt;br /&gt;
===Bash versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
&lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# sh check_ip.sh /var/log/auth.log /etc/iptables_blocked.txt&lt;br /&gt;
&lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
# mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
BLOCK_LEVEL=5&lt;br /&gt;
# auth.log faili asukoht&lt;br /&gt;
AUTH_LOG_FILE=$1&lt;br /&gt;
# tüüpilised veasituatsioonid&lt;br /&gt;
ERROR_PATTERNS=&amp;quot;error | illegal | not\ allowed&amp;quot;&lt;br /&gt;
# väljundfaili nimi (või asukoht)&lt;br /&gt;
IP_TABLES_FILE=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime etteantud argumenti&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No command-line arguments.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No IPTABLES file specified.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# kontrollime, et faili saaks kirjutada&lt;br /&gt;
touch &amp;quot;$IP_TABLES_FILE&amp;quot;&lt;br /&gt;
if [ -e $IP_TABLES_FILE ]; then&lt;br /&gt;
	echo &amp;quot;IPTABLES file: &amp;quot;$IP_TABLES_FILE&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Cannot write IPTABLES file!&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# itereerime yle logiridade&lt;br /&gt;
more $AUTH_LOG_FILE | egrep &amp;quot;$ERROR_PATTERNS&amp;quot; | while read line; do&lt;br /&gt;
	address=$(echo $line | grep -Eo &#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
	# kas on valiidne IP&lt;br /&gt;
	if [ ${#address} -gt 0 ]; then&lt;br /&gt;
		# loeme esinevuskorrad&lt;br /&gt;
		occurences=$(grep -c $address $AUTH_LOG_FILE)&lt;br /&gt;
		if [ $occurences -ge $BLOCK_LEVEL ]; then # kui on juba piisavalt feilinud IP&lt;br /&gt;
			added_occurences=$(grep -c $address $IP_TABLES_FILE)&lt;br /&gt;
			#kontrollime, et poleks juba lisatud&lt;br /&gt;
			if [ $added_occurences -lt 1 ]; then&lt;br /&gt;
				echo &amp;quot;Blacklisting &amp;quot;$address&amp;quot; with &amp;quot;$occurences&amp;quot; occurences&amp;quot;&lt;br /&gt;
				#kirjutame IPTABLES reegli&lt;br /&gt;
				echo &amp;quot;iptables -A INPUT -s &amp;quot;$address&amp;quot; -j DROP&amp;quot; &amp;gt;&amp;gt; $IP_TABLES_FILE&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Pythoni versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: latin-1 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
 &lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&lt;br /&gt;
 &lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
    BLOCK_LEVEL=5&lt;br /&gt;
    &lt;br /&gt;
    # kuvab kasutamise info&lt;br /&gt;
    def usage():&lt;br /&gt;
        print &#039;Programmi kasutamine:&#039;&lt;br /&gt;
        print &#039;py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&#039;&lt;br /&gt;
    &lt;br /&gt;
    # loendab stringi esinemised etteantud failis&lt;br /&gt;
    def matchCountInFile(str, filename):&lt;br /&gt;
        log_file = open(filename, &#039;r&#039;)&lt;br /&gt;
        count = 0&lt;br /&gt;
        for line in log_file:&lt;br /&gt;
            if re.search(str, line):&lt;br /&gt;
                count=count+1&lt;br /&gt;
        return count&lt;br /&gt;
    &lt;br /&gt;
    try:&lt;br /&gt;
        # loeme ja kontrollime getopti abil argumendid&lt;br /&gt;
        opts, args = getopt.getopt(sys.argv[1:], &amp;quot;li:v&amp;quot;, [&amp;quot;logfile=&amp;quot;, &amp;quot;iptablesfile=&amp;quot;])&lt;br /&gt;
        AUTH_LOG_FILE = &#039;&#039;&lt;br /&gt;
        IP_TABLES_FILE = &#039;&#039;&lt;br /&gt;
        for opt, arg in opts:&lt;br /&gt;
            if opt == &#039;--logfile&#039;:&lt;br /&gt;
                AUTH_LOG_FILE = arg&lt;br /&gt;
            elif opt == &#039;--iptablesfile&#039;:&lt;br /&gt;
                IP_TABLES_FILE = arg&lt;br /&gt;
&lt;br /&gt;
        print &#039;AUTH_LOG_FILE=&#039; + AUTH_LOG_FILE&lt;br /&gt;
        print &#039;IP_TABLES_FILE=&#039; + IP_TABLES_FILE&lt;br /&gt;
&lt;br /&gt;
        if AUTH_LOG_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid auth log filename&#039;)&lt;br /&gt;
        if IP_TABLES_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid iptables filename&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not os.path.isfile(AUTH_LOG_FILE):&lt;br /&gt;
            raise Exception(&#039;Auth log file does not exist&#039;)&lt;br /&gt;
&lt;br /&gt;
        ip_pattern = re.compile(&#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
        &lt;br /&gt;
        # valmistame logifaili lugemiseks ette&lt;br /&gt;
        log_file = open(AUTH_LOG_FILE, &#039;r&#039;)&lt;br /&gt;
        ip_address_array = []&lt;br /&gt;
        ip_tables_filehandle = None&lt;br /&gt;
        # itereerime yle logiridade&lt;br /&gt;
        for log_line in log_file:&lt;br /&gt;
            # read, mis on veaga&lt;br /&gt;
            if (re.search(&#039;error&#039;, log_line) != None or re.search(&#039;illegal&#039;,  log_line) != None or re.search(&#039;not allowed&#039;, log_line) != None):&lt;br /&gt;
                ip_address_match = re.search(ip_pattern, log_line)&lt;br /&gt;
                if (ip_address_match == None):&lt;br /&gt;
                    continue&lt;br /&gt;
                # leiame rea pealt IP aadressi&lt;br /&gt;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&lt;br /&gt;
                # vajadusel blacklistime&lt;br /&gt;
                if occurences &amp;gt;= BLOCK_LEVEL and not ip_address in ip_address_array:&lt;br /&gt;
                    ip_address_array.append(ip_address)&lt;br /&gt;
                    print &amp;quot;Blacklisting &amp;quot; + ip_address + &amp;quot; with &amp;quot; + str(occurences) + &amp;quot; occurences&amp;quot;&lt;br /&gt;
                    if ip_tables_filehandle == None:&lt;br /&gt;
                        ip_tables_filehandle = open(IP_TABLES_FILE, &#039;w&#039;)&lt;br /&gt;
                    ip_tables_filehandle.write(&amp;quot;iptables -A INPUT -s &amp;quot; + ip_address + &amp;quot; -j DROP\n&amp;quot;)&lt;br /&gt;
        log_file.close()&lt;br /&gt;
&lt;br /&gt;
        if (ip_tables_filehandle != None):&lt;br /&gt;
            ip_tables_filehandle.close()&lt;br /&gt;
&lt;br /&gt;
    except getopt.GetoptError, err:&lt;br /&gt;
        print str(err)&lt;br /&gt;
        usage()&lt;br /&gt;
        sys.exit(2)&lt;br /&gt;
&lt;br /&gt;
# k2ivitame meetodi&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;br /&gt;
*[[Skript, mis otsib pilte ja loob kaustad aasta järgi ning tõstab vastava aasta pildi vastava aasta kausta-Python]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22821</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22821"/>
		<updated>2011-01-27T18:56:38Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!#/bin/bash&lt;br /&gt;
sed -ne &#039;/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}&#039; /var/lib/dpkg/status | sort -rn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[Teenusemonitor]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib - Python]]&lt;br /&gt;
* [[Skript, mis küsib ACL-i objekte AD-st - Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
Midagi mailiserveri logide põhjal?&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
Skript mis otsib kõik pildi,video,muusika,dokumendid ja jagab need kaustadesse.&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - bash]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, mis on loodud samba seadistuste muutmiseks]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaudu(lävend võiks näiteks olla 10 ebaõnnestunud katset) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;br /&gt;
&lt;br /&gt;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&lt;br /&gt;
&lt;br /&gt;
===Bash versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
&lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# sh check_ip.sh /var/log/auth.log /etc/iptables_blocked.txt&lt;br /&gt;
&lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
# mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
BLOCK_LEVEL=5&lt;br /&gt;
# auth.log faili asukoht&lt;br /&gt;
AUTH_LOG_FILE=$1&lt;br /&gt;
# tüüpilised veasituatsioonid&lt;br /&gt;
ERROR_PATTERNS=&amp;quot;error | illegal | not\ allowed&amp;quot;&lt;br /&gt;
# väljundfaili nimi (või asukoht)&lt;br /&gt;
IP_TABLES_FILE=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime etteantud argumenti&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No command-line arguments.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No IPTABLES file specified.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# kontrollime, et faili saaks kirjutada&lt;br /&gt;
touch &amp;quot;$IP_TABLES_FILE&amp;quot;&lt;br /&gt;
if [ -e $IP_TABLES_FILE ]; then&lt;br /&gt;
	echo &amp;quot;IPTABLES file: &amp;quot;$IP_TABLES_FILE&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Cannot write IPTABLES file!&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# itereerime yle logiridade&lt;br /&gt;
more $AUTH_LOG_FILE | egrep &amp;quot;$ERROR_PATTERNS&amp;quot; | while read line; do&lt;br /&gt;
	address=$(echo $line | grep -Eo &#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
	# kas on valiidne IP&lt;br /&gt;
	if [ ${#address} -gt 0 ]; then&lt;br /&gt;
		# loeme esinevuskorrad&lt;br /&gt;
		occurences=$(grep -c $address $AUTH_LOG_FILE)&lt;br /&gt;
		if [ $occurences -ge $BLOCK_LEVEL ]; then # kui on juba piisavalt feilinud IP&lt;br /&gt;
			added_occurences=$(grep -c $address $IP_TABLES_FILE)&lt;br /&gt;
			#kontrollime, et poleks juba lisatud&lt;br /&gt;
			if [ $added_occurences -lt 1 ]; then&lt;br /&gt;
				echo &amp;quot;Blacklisting &amp;quot;$address&amp;quot; with &amp;quot;$occurences&amp;quot; occurences&amp;quot;&lt;br /&gt;
				#kirjutame IPTABLES reegli&lt;br /&gt;
				echo &amp;quot;iptables -A INPUT -s &amp;quot;$address&amp;quot; -j DROP&amp;quot; &amp;gt;&amp;gt; $IP_TABLES_FILE&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Pythoni versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: latin-1 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
 &lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&lt;br /&gt;
 &lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
    BLOCK_LEVEL=5&lt;br /&gt;
    &lt;br /&gt;
    # kuvab kasutamise info&lt;br /&gt;
    def usage():&lt;br /&gt;
        print &#039;Programmi kasutamine:&#039;&lt;br /&gt;
        print &#039;py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&#039;&lt;br /&gt;
    &lt;br /&gt;
    # loendab stringi esinemised etteantud failis&lt;br /&gt;
    def matchCountInFile(str, filename):&lt;br /&gt;
        log_file = open(filename, &#039;r&#039;)&lt;br /&gt;
        count = 0&lt;br /&gt;
        for line in log_file:&lt;br /&gt;
            if re.search(str, line):&lt;br /&gt;
                count=count+1&lt;br /&gt;
        return count&lt;br /&gt;
    &lt;br /&gt;
    try:&lt;br /&gt;
        # loeme ja kontrollime getopti abil argumendid&lt;br /&gt;
        opts, args = getopt.getopt(sys.argv[1:], &amp;quot;li:v&amp;quot;, [&amp;quot;logfile=&amp;quot;, &amp;quot;iptablesfile=&amp;quot;])&lt;br /&gt;
        AUTH_LOG_FILE = &#039;&#039;&lt;br /&gt;
        IP_TABLES_FILE = &#039;&#039;&lt;br /&gt;
        for opt, arg in opts:&lt;br /&gt;
            if opt == &#039;--logfile&#039;:&lt;br /&gt;
                AUTH_LOG_FILE = arg&lt;br /&gt;
            elif opt == &#039;--iptablesfile&#039;:&lt;br /&gt;
                IP_TABLES_FILE = arg&lt;br /&gt;
&lt;br /&gt;
        print &#039;AUTH_LOG_FILE=&#039; + AUTH_LOG_FILE&lt;br /&gt;
        print &#039;IP_TABLES_FILE=&#039; + IP_TABLES_FILE&lt;br /&gt;
&lt;br /&gt;
        if AUTH_LOG_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid auth log filename&#039;)&lt;br /&gt;
        if IP_TABLES_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid iptables filename&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not os.path.isfile(AUTH_LOG_FILE):&lt;br /&gt;
            raise Exception(&#039;Auth log file does not exist&#039;)&lt;br /&gt;
&lt;br /&gt;
        ip_pattern = re.compile(&#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
        &lt;br /&gt;
        # valmistame logifaili lugemiseks ette&lt;br /&gt;
        log_file = open(AUTH_LOG_FILE, &#039;r&#039;)&lt;br /&gt;
        ip_address_array = []&lt;br /&gt;
        ip_tables_filehandle = None&lt;br /&gt;
        # itereerime yle logiridade&lt;br /&gt;
        for log_line in log_file:&lt;br /&gt;
            # read, mis on veaga&lt;br /&gt;
            if (re.search(&#039;error&#039;, log_line) != None or re.search(&#039;illegal&#039;,  log_line) != None or re.search(&#039;not allowed&#039;, log_line) != None):&lt;br /&gt;
                ip_address_match = re.search(ip_pattern, log_line)&lt;br /&gt;
                if (ip_address_match == None):&lt;br /&gt;
                    continue&lt;br /&gt;
                # leiame rea pealt IP aadressi&lt;br /&gt;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&lt;br /&gt;
                # vajadusel blacklistime&lt;br /&gt;
                if occurences &amp;gt;= BLOCK_LEVEL and not ip_address in ip_address_array:&lt;br /&gt;
                    ip_address_array.append(ip_address)&lt;br /&gt;
                    print &amp;quot;Blacklisting &amp;quot; + ip_address + &amp;quot; with &amp;quot; + str(occurences) + &amp;quot; occurences&amp;quot;&lt;br /&gt;
                    if ip_tables_filehandle == None:&lt;br /&gt;
                        ip_tables_filehandle = open(IP_TABLES_FILE, &#039;w&#039;)&lt;br /&gt;
                    ip_tables_filehandle.write(&amp;quot;iptables -A INPUT -s &amp;quot; + ip_address + &amp;quot; -j DROP\n&amp;quot;)&lt;br /&gt;
        log_file.close()&lt;br /&gt;
&lt;br /&gt;
        if (ip_tables_filehandle != None):&lt;br /&gt;
            ip_tables_filehandle.close()&lt;br /&gt;
&lt;br /&gt;
    except getopt.GetoptError, err:&lt;br /&gt;
        print str(err)&lt;br /&gt;
        usage()&lt;br /&gt;
        sys.exit(2)&lt;br /&gt;
&lt;br /&gt;
# k2ivitame meetodi&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;br /&gt;
*[[Skript, mis otsib pilte ja loob kaustad aasta järgi ning tõstab vastava aasta pildi vastava aasta kausta-Python]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_bash&amp;diff=22814</id>
		<title>Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_bash&amp;diff=22814"/>
		<updated>2011-01-27T15:27:27Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skript, mis otsib ette antud kohast .txt failid, mis on väiksemad kui 100k ja tõstab need tehtud kausta.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Kuhu kausta suurusega 100k tekstifailid salvestatakse? &amp;quot;&lt;br /&gt;
read FOLDER_PATH&lt;br /&gt;
mkdir $FOLDER_PATH&lt;br /&gt;
echo &amp;quot;Kus kohast sa faile otsida tahad? &amp;quot;&lt;br /&gt;
read SEARCH_PATH&lt;br /&gt;
cd $SEARCH_PATH&lt;br /&gt;
for f in $(find . -type f -name &#039;*.txt&#039; -size -100k);&lt;br /&gt;
do&lt;br /&gt;
#echo f&lt;br /&gt;
    mv -i $f $FOLDER_PATH;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_bash&amp;diff=22813</id>
		<title>Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_mis_t%C3%B5stab_k%C3%B5ik_v%C3%A4ikesed_.txt_failid_%C3%BChte_folderisse_-_bash&amp;diff=22813"/>
		<updated>2011-01-27T15:20:18Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Created page with &amp;#039;Skript, mis otsib ette antud kohast .txt failid ja tõstab need tehtud kausta. &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; #!/bin/bash echo &amp;quot;Kuhu kausta suurusega 100k tekstifailid salvestatakse? &amp;quot; rea…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skript, mis otsib ette antud kohast .txt failid ja tõstab need tehtud kausta.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Kuhu kausta suurusega 100k tekstifailid salvestatakse? &amp;quot;&lt;br /&gt;
read FOLDER_PATH&lt;br /&gt;
mkdir $FOLDER_PATH&lt;br /&gt;
echo &amp;quot;Kus kohast sa faile otsida tahad? &amp;quot;&lt;br /&gt;
read SEARCH_PATH&lt;br /&gt;
cd $SEARCH_PATH&lt;br /&gt;
for f in $(find . -type f -name &#039;*.txt&#039; -size -100k);&lt;br /&gt;
do&lt;br /&gt;
#echo f&lt;br /&gt;
    mv -i $f $FOLDER_PATH;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22807</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22807"/>
		<updated>2011-01-27T12:42:45Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
!#/bin/bash&lt;br /&gt;
sed -ne &#039;/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}&#039; /var/lib/dpkg/status | sort -rn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[Teenusemonitor]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib - Python]]&lt;br /&gt;
* [[Skript, mis küsib ACL-i objekte AD-st - Powershell]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
Midagi mailiserveri logide põhjal?&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
Skript mis otsib kõik pildi,video,muusika,dokumendid ja jagab need kaustadesse.&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis tõstab kõik väikesed .txt failid ühte folderisse - bash]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaudu(lävend võiks näiteks olla 10 ebaõnnestunud katset) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;br /&gt;
&lt;br /&gt;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&lt;br /&gt;
&lt;br /&gt;
===Bash versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
&lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# sh check_ip.sh /var/log/auth.log /etc/iptables_blocked.txt&lt;br /&gt;
&lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
# mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
BLOCK_LEVEL=5&lt;br /&gt;
# auth.log faili asukoht&lt;br /&gt;
AUTH_LOG_FILE=$1&lt;br /&gt;
# tüüpilised veasituatsioonid&lt;br /&gt;
ERROR_PATTERNS=&amp;quot;error | illegal | not\ allowed&amp;quot;&lt;br /&gt;
# väljundfaili nimi (või asukoht)&lt;br /&gt;
IP_TABLES_FILE=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime etteantud argumenti&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No command-line arguments.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No IPTABLES file specified.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# kontrollime, et faili saaks kirjutada&lt;br /&gt;
touch &amp;quot;$IP_TABLES_FILE&amp;quot;&lt;br /&gt;
if [ -e $IP_TABLES_FILE ]; then&lt;br /&gt;
	echo &amp;quot;IPTABLES file: &amp;quot;$IP_TABLES_FILE&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Cannot write IPTABLES file!&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# itereerime yle logiridade&lt;br /&gt;
more $AUTH_LOG_FILE | egrep &amp;quot;$ERROR_PATTERNS&amp;quot; | while read line; do&lt;br /&gt;
	address=$(echo $line | grep -Eo &#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
	# kas on valiidne IP&lt;br /&gt;
	if [ ${#address} -gt 0 ]; then&lt;br /&gt;
		# loeme esinevuskorrad&lt;br /&gt;
		occurences=$(grep -c $address $AUTH_LOG_FILE)&lt;br /&gt;
		if [ $occurences -ge $BLOCK_LEVEL ]; then # kui on juba piisavalt feilinud IP&lt;br /&gt;
			added_occurences=$(grep -c $address $IP_TABLES_FILE)&lt;br /&gt;
			#kontrollime, et poleks juba lisatud&lt;br /&gt;
			if [ $added_occurences -lt 1 ]; then&lt;br /&gt;
				echo &amp;quot;Blacklisting &amp;quot;$address&amp;quot; with &amp;quot;$occurences&amp;quot; occurences&amp;quot;&lt;br /&gt;
				#kirjutame IPTABLES reegli&lt;br /&gt;
				echo &amp;quot;iptables -A INPUT -s &amp;quot;$address&amp;quot; -j DROP&amp;quot; &amp;gt;&amp;gt; $IP_TABLES_FILE&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Pythoni versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: latin-1 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
 &lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&lt;br /&gt;
 &lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
    BLOCK_LEVEL=5&lt;br /&gt;
    &lt;br /&gt;
    # kuvab kasutamise info&lt;br /&gt;
    def usage():&lt;br /&gt;
        print &#039;Programmi kasutamine:&#039;&lt;br /&gt;
        print &#039;py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&#039;&lt;br /&gt;
    &lt;br /&gt;
    # loendab stringi esinemised etteantud failis&lt;br /&gt;
    def matchCountInFile(str, filename):&lt;br /&gt;
        log_file = open(filename, &#039;r&#039;)&lt;br /&gt;
        count = 0&lt;br /&gt;
        for line in log_file:&lt;br /&gt;
            if re.search(str, line):&lt;br /&gt;
                count=count+1&lt;br /&gt;
        return count&lt;br /&gt;
    &lt;br /&gt;
    try:&lt;br /&gt;
        # loeme ja kontrollime getopti abil argumendid&lt;br /&gt;
        opts, args = getopt.getopt(sys.argv[1:], &amp;quot;li:v&amp;quot;, [&amp;quot;logfile=&amp;quot;, &amp;quot;iptablesfile=&amp;quot;])&lt;br /&gt;
        AUTH_LOG_FILE = &#039;&#039;&lt;br /&gt;
        IP_TABLES_FILE = &#039;&#039;&lt;br /&gt;
        for opt, arg in opts:&lt;br /&gt;
            if opt == &#039;--logfile&#039;:&lt;br /&gt;
                AUTH_LOG_FILE = arg&lt;br /&gt;
            elif opt == &#039;--iptablesfile&#039;:&lt;br /&gt;
                IP_TABLES_FILE = arg&lt;br /&gt;
&lt;br /&gt;
        print &#039;AUTH_LOG_FILE=&#039; + AUTH_LOG_FILE&lt;br /&gt;
        print &#039;IP_TABLES_FILE=&#039; + IP_TABLES_FILE&lt;br /&gt;
&lt;br /&gt;
        if AUTH_LOG_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid auth log filename&#039;)&lt;br /&gt;
        if IP_TABLES_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid iptables filename&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not os.path.isfile(AUTH_LOG_FILE):&lt;br /&gt;
            raise Exception(&#039;Auth log file does not exist&#039;)&lt;br /&gt;
&lt;br /&gt;
        ip_pattern = re.compile(&#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
        &lt;br /&gt;
        # valmistame logifaili lugemiseks ette&lt;br /&gt;
        log_file = open(AUTH_LOG_FILE, &#039;r&#039;)&lt;br /&gt;
        ip_address_array = []&lt;br /&gt;
        ip_tables_filehandle = None&lt;br /&gt;
        # itereerime yle logiridade&lt;br /&gt;
        for log_line in log_file:&lt;br /&gt;
            # read, mis on veaga&lt;br /&gt;
            if (re.search(&#039;error&#039;, log_line) != None or re.search(&#039;illegal&#039;,  log_line) != None or re.search(&#039;not allowed&#039;, log_line) != None):&lt;br /&gt;
                ip_address_match = re.search(ip_pattern, log_line)&lt;br /&gt;
                if (ip_address_match == None):&lt;br /&gt;
                    continue&lt;br /&gt;
                # leiame rea pealt IP aadressi&lt;br /&gt;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&lt;br /&gt;
                # vajadusel blacklistime&lt;br /&gt;
                if occurences &amp;gt;= BLOCK_LEVEL and not ip_address in ip_address_array:&lt;br /&gt;
                    ip_address_array.append(ip_address)&lt;br /&gt;
                    print &amp;quot;Blacklisting &amp;quot; + ip_address + &amp;quot; with &amp;quot; + str(occurences) + &amp;quot; occurences&amp;quot;&lt;br /&gt;
                    if ip_tables_filehandle == None:&lt;br /&gt;
                        ip_tables_filehandle = open(IP_TABLES_FILE, &#039;w&#039;)&lt;br /&gt;
                    ip_tables_filehandle.write(&amp;quot;iptables -A INPUT -s &amp;quot; + ip_address + &amp;quot; -j DROP\n&amp;quot;)&lt;br /&gt;
        log_file.close()&lt;br /&gt;
&lt;br /&gt;
        if (ip_tables_filehandle != None):&lt;br /&gt;
            ip_tables_filehandle.close()&lt;br /&gt;
&lt;br /&gt;
    except getopt.GetoptError, err:&lt;br /&gt;
        print str(err)&lt;br /&gt;
        usage()&lt;br /&gt;
        sys.exit(2)&lt;br /&gt;
&lt;br /&gt;
# k2ivitame meetodi&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22790</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22790"/>
		<updated>2011-01-26T15:54:57Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[Teenusemonitor]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* PYTHON [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* POWERSHELL [[Skript, mis küsib ACL-i objekte AD-st]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
Midagi mailiserveri logide põhjal?&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
Skript mis otsib kõik pildi,video,muusika,dokumendid ja jagab need kaustadesse.&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis jaotab failid suuruse järgi kaustadesse - bash]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaudu(lävend võiks näiteks olla 10 ebaõnnestunud katset) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;br /&gt;
&lt;br /&gt;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&lt;br /&gt;
&lt;br /&gt;
===Bash versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
&lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# sh check_ip.sh /var/log/auth.log /etc/iptables_blocked.txt&lt;br /&gt;
&lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
# mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
BLOCK_LEVEL=5&lt;br /&gt;
# auth.log faili asukoht&lt;br /&gt;
AUTH_LOG_FILE=$1&lt;br /&gt;
# tüüpilised veasituatsioonid&lt;br /&gt;
ERROR_PATTERNS=&amp;quot;error | illegal | not\ allowed&amp;quot;&lt;br /&gt;
# väljundfaili nimi (või asukoht)&lt;br /&gt;
IP_TABLES_FILE=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime etteantud argumenti&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No command-line arguments.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No IPTABLES file specified.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# kontrollime, et faili saaks kirjutada&lt;br /&gt;
touch &amp;quot;$IP_TABLES_FILE&amp;quot;&lt;br /&gt;
if [ -e $IP_TABLES_FILE ]; then&lt;br /&gt;
	echo &amp;quot;IPTABLES file: &amp;quot;$IP_TABLES_FILE&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Cannot write IPTABLES file!&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# itereerime yle logiridade&lt;br /&gt;
more $AUTH_LOG_FILE | egrep &amp;quot;$ERROR_PATTERNS&amp;quot; | while read line; do&lt;br /&gt;
	address=$(echo $line | grep -Eo &#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
	# kas on valiidne IP&lt;br /&gt;
	if [ ${#address} -gt 0 ]; then&lt;br /&gt;
		# loeme esinevuskorrad&lt;br /&gt;
		occurences=$(grep -c $address $AUTH_LOG_FILE)&lt;br /&gt;
		if [ $occurences -ge $BLOCK_LEVEL ]; then # kui on juba piisavalt feilinud IP&lt;br /&gt;
			added_occurences=$(grep -c $address $IP_TABLES_FILE)&lt;br /&gt;
			#kontrollime, et poleks juba lisatud&lt;br /&gt;
			if [ $added_occurences -lt 1 ]; then&lt;br /&gt;
				echo &amp;quot;Blacklisting &amp;quot;$address&amp;quot; with &amp;quot;$occurences&amp;quot; occurences&amp;quot;&lt;br /&gt;
				#kirjutame IPTABLES reegli&lt;br /&gt;
				echo &amp;quot;iptables -A INPUT -s &amp;quot;$address&amp;quot; -j DROP&amp;quot; &amp;gt;&amp;gt; $IP_TABLES_FILE&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Pythoni versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: latin-1 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
 &lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&lt;br /&gt;
 &lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
    BLOCK_LEVEL=5&lt;br /&gt;
    &lt;br /&gt;
    # kuvab kasutamise info&lt;br /&gt;
    def usage():&lt;br /&gt;
        print &#039;Programmi kasutamine:&#039;&lt;br /&gt;
        print &#039;py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&#039;&lt;br /&gt;
    &lt;br /&gt;
    # loendab stringi esinemised etteantud failis&lt;br /&gt;
    def matchCountInFile(str, filename):&lt;br /&gt;
        log_file = open(filename, &#039;r&#039;)&lt;br /&gt;
        count = 0&lt;br /&gt;
        for line in log_file:&lt;br /&gt;
            if re.search(str, line):&lt;br /&gt;
                count=count+1&lt;br /&gt;
        return count&lt;br /&gt;
    &lt;br /&gt;
    try:&lt;br /&gt;
        # loeme ja kontrollime getopti abil argumendid&lt;br /&gt;
        opts, args = getopt.getopt(sys.argv[1:], &amp;quot;li:v&amp;quot;, [&amp;quot;logfile=&amp;quot;, &amp;quot;iptablesfile=&amp;quot;])&lt;br /&gt;
        AUTH_LOG_FILE = &#039;&#039;&lt;br /&gt;
        IP_TABLES_FILE = &#039;&#039;&lt;br /&gt;
        for opt, arg in opts:&lt;br /&gt;
            if opt == &#039;--logfile&#039;:&lt;br /&gt;
                AUTH_LOG_FILE = arg&lt;br /&gt;
            elif opt == &#039;--iptablesfile&#039;:&lt;br /&gt;
                IP_TABLES_FILE = arg&lt;br /&gt;
&lt;br /&gt;
        print &#039;AUTH_LOG_FILE=&#039; + AUTH_LOG_FILE&lt;br /&gt;
        print &#039;IP_TABLES_FILE=&#039; + IP_TABLES_FILE&lt;br /&gt;
&lt;br /&gt;
        if AUTH_LOG_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid auth log filename&#039;)&lt;br /&gt;
        if IP_TABLES_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid iptables filename&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not os.path.isfile(AUTH_LOG_FILE):&lt;br /&gt;
            raise Exception(&#039;Auth log file does not exist&#039;)&lt;br /&gt;
&lt;br /&gt;
        ip_pattern = re.compile(&#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
        &lt;br /&gt;
        # valmistame logifaili lugemiseks ette&lt;br /&gt;
        log_file = open(AUTH_LOG_FILE, &#039;r&#039;)&lt;br /&gt;
        ip_address_array = []&lt;br /&gt;
        ip_tables_filehandle = None&lt;br /&gt;
        # itereerime yle logiridade&lt;br /&gt;
        for log_line in log_file:&lt;br /&gt;
            # read, mis on veaga&lt;br /&gt;
            if (re.search(&#039;error&#039;, log_line) != None or re.search(&#039;illegal&#039;,  log_line) != None or re.search(&#039;not allowed&#039;, log_line) != None):&lt;br /&gt;
                ip_address_match = re.search(ip_pattern, log_line)&lt;br /&gt;
                if (ip_address_match == None):&lt;br /&gt;
                    continue&lt;br /&gt;
                # leiame rea pealt IP aadressi&lt;br /&gt;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&lt;br /&gt;
                # vajadusel blacklistime&lt;br /&gt;
                if occurences &amp;gt;= BLOCK_LEVEL and not ip_address in ip_address_array:&lt;br /&gt;
                    ip_address_array.append(ip_address)&lt;br /&gt;
                    print &amp;quot;Blacklisting &amp;quot; + ip_address + &amp;quot; with &amp;quot; + str(occurences) + &amp;quot; occurences&amp;quot;&lt;br /&gt;
                    if ip_tables_filehandle == None:&lt;br /&gt;
                        ip_tables_filehandle = open(IP_TABLES_FILE, &#039;w&#039;)&lt;br /&gt;
                    ip_tables_filehandle.write(&amp;quot;iptables -A INPUT -s &amp;quot; + ip_address + &amp;quot; -j DROP\n&amp;quot;)&lt;br /&gt;
        log_file.close()&lt;br /&gt;
&lt;br /&gt;
        if (ip_tables_filehandle != None):&lt;br /&gt;
            ip_tables_filehandle.close()&lt;br /&gt;
&lt;br /&gt;
    except getopt.GetoptError, err:&lt;br /&gt;
        print str(err)&lt;br /&gt;
        usage()&lt;br /&gt;
        sys.exit(2)&lt;br /&gt;
&lt;br /&gt;
# k2ivitame meetodi&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22788</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22788"/>
		<updated>2011-01-26T15:54:31Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[Teenusemonitor]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* PYTHON [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* POWERSHELL [[Skript, mis küsib ACL-i objekte AD-st]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
Midagi mailiserveri logide põhjal?&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
Skript mis otsib kõik pildi,video,muusika,dokumendid ja jagab need kaustadesse.&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis jaotab failid suuruse järgi kaustadesse - bash]]&amp;lt;/br&amp;gt;&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaudu(lävend võiks näiteks olla 10 ebaõnnestunud katset) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;br /&gt;
&lt;br /&gt;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&lt;br /&gt;
&lt;br /&gt;
===Bash versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
&lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# sh check_ip.sh /var/log/auth.log /etc/iptables_blocked.txt&lt;br /&gt;
&lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
# mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
BLOCK_LEVEL=5&lt;br /&gt;
# auth.log faili asukoht&lt;br /&gt;
AUTH_LOG_FILE=$1&lt;br /&gt;
# tüüpilised veasituatsioonid&lt;br /&gt;
ERROR_PATTERNS=&amp;quot;error | illegal | not\ allowed&amp;quot;&lt;br /&gt;
# väljundfaili nimi (või asukoht)&lt;br /&gt;
IP_TABLES_FILE=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime etteantud argumenti&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No command-line arguments.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No IPTABLES file specified.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# kontrollime, et faili saaks kirjutada&lt;br /&gt;
touch &amp;quot;$IP_TABLES_FILE&amp;quot;&lt;br /&gt;
if [ -e $IP_TABLES_FILE ]; then&lt;br /&gt;
	echo &amp;quot;IPTABLES file: &amp;quot;$IP_TABLES_FILE&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Cannot write IPTABLES file!&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# itereerime yle logiridade&lt;br /&gt;
more $AUTH_LOG_FILE | egrep &amp;quot;$ERROR_PATTERNS&amp;quot; | while read line; do&lt;br /&gt;
	address=$(echo $line | grep -Eo &#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
	# kas on valiidne IP&lt;br /&gt;
	if [ ${#address} -gt 0 ]; then&lt;br /&gt;
		# loeme esinevuskorrad&lt;br /&gt;
		occurences=$(grep -c $address $AUTH_LOG_FILE)&lt;br /&gt;
		if [ $occurences -ge $BLOCK_LEVEL ]; then # kui on juba piisavalt feilinud IP&lt;br /&gt;
			added_occurences=$(grep -c $address $IP_TABLES_FILE)&lt;br /&gt;
			#kontrollime, et poleks juba lisatud&lt;br /&gt;
			if [ $added_occurences -lt 1 ]; then&lt;br /&gt;
				echo &amp;quot;Blacklisting &amp;quot;$address&amp;quot; with &amp;quot;$occurences&amp;quot; occurences&amp;quot;&lt;br /&gt;
				#kirjutame IPTABLES reegli&lt;br /&gt;
				echo &amp;quot;iptables -A INPUT -s &amp;quot;$address&amp;quot; -j DROP&amp;quot; &amp;gt;&amp;gt; $IP_TABLES_FILE&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Pythoni versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: latin-1 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
 &lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&lt;br /&gt;
 &lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
    BLOCK_LEVEL=5&lt;br /&gt;
    &lt;br /&gt;
    # kuvab kasutamise info&lt;br /&gt;
    def usage():&lt;br /&gt;
        print &#039;Programmi kasutamine:&#039;&lt;br /&gt;
        print &#039;py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&#039;&lt;br /&gt;
    &lt;br /&gt;
    # loendab stringi esinemised etteantud failis&lt;br /&gt;
    def matchCountInFile(str, filename):&lt;br /&gt;
        log_file = open(filename, &#039;r&#039;)&lt;br /&gt;
        count = 0&lt;br /&gt;
        for line in log_file:&lt;br /&gt;
            if re.search(str, line):&lt;br /&gt;
                count=count+1&lt;br /&gt;
        return count&lt;br /&gt;
    &lt;br /&gt;
    try:&lt;br /&gt;
        # loeme ja kontrollime getopti abil argumendid&lt;br /&gt;
        opts, args = getopt.getopt(sys.argv[1:], &amp;quot;li:v&amp;quot;, [&amp;quot;logfile=&amp;quot;, &amp;quot;iptablesfile=&amp;quot;])&lt;br /&gt;
        AUTH_LOG_FILE = &#039;&#039;&lt;br /&gt;
        IP_TABLES_FILE = &#039;&#039;&lt;br /&gt;
        for opt, arg in opts:&lt;br /&gt;
            if opt == &#039;--logfile&#039;:&lt;br /&gt;
                AUTH_LOG_FILE = arg&lt;br /&gt;
            elif opt == &#039;--iptablesfile&#039;:&lt;br /&gt;
                IP_TABLES_FILE = arg&lt;br /&gt;
&lt;br /&gt;
        print &#039;AUTH_LOG_FILE=&#039; + AUTH_LOG_FILE&lt;br /&gt;
        print &#039;IP_TABLES_FILE=&#039; + IP_TABLES_FILE&lt;br /&gt;
&lt;br /&gt;
        if AUTH_LOG_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid auth log filename&#039;)&lt;br /&gt;
        if IP_TABLES_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid iptables filename&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not os.path.isfile(AUTH_LOG_FILE):&lt;br /&gt;
            raise Exception(&#039;Auth log file does not exist&#039;)&lt;br /&gt;
&lt;br /&gt;
        ip_pattern = re.compile(&#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
        &lt;br /&gt;
        # valmistame logifaili lugemiseks ette&lt;br /&gt;
        log_file = open(AUTH_LOG_FILE, &#039;r&#039;)&lt;br /&gt;
        ip_address_array = []&lt;br /&gt;
        ip_tables_filehandle = None&lt;br /&gt;
        # itereerime yle logiridade&lt;br /&gt;
        for log_line in log_file:&lt;br /&gt;
            # read, mis on veaga&lt;br /&gt;
            if (re.search(&#039;error&#039;, log_line) != None or re.search(&#039;illegal&#039;,  log_line) != None or re.search(&#039;not allowed&#039;, log_line) != None):&lt;br /&gt;
                ip_address_match = re.search(ip_pattern, log_line)&lt;br /&gt;
                if (ip_address_match == None):&lt;br /&gt;
                    continue&lt;br /&gt;
                # leiame rea pealt IP aadressi&lt;br /&gt;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&lt;br /&gt;
                # vajadusel blacklistime&lt;br /&gt;
                if occurences &amp;gt;= BLOCK_LEVEL and not ip_address in ip_address_array:&lt;br /&gt;
                    ip_address_array.append(ip_address)&lt;br /&gt;
                    print &amp;quot;Blacklisting &amp;quot; + ip_address + &amp;quot; with &amp;quot; + str(occurences) + &amp;quot; occurences&amp;quot;&lt;br /&gt;
                    if ip_tables_filehandle == None:&lt;br /&gt;
                        ip_tables_filehandle = open(IP_TABLES_FILE, &#039;w&#039;)&lt;br /&gt;
                    ip_tables_filehandle.write(&amp;quot;iptables -A INPUT -s &amp;quot; + ip_address + &amp;quot; -j DROP\n&amp;quot;)&lt;br /&gt;
        log_file.close()&lt;br /&gt;
&lt;br /&gt;
        if (ip_tables_filehandle != None):&lt;br /&gt;
            ip_tables_filehandle.close()&lt;br /&gt;
&lt;br /&gt;
    except getopt.GetoptError, err:&lt;br /&gt;
        print str(err)&lt;br /&gt;
        usage()&lt;br /&gt;
        sys.exit(2)&lt;br /&gt;
&lt;br /&gt;
# k2ivitame meetodi&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22787</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22787"/>
		<updated>2011-01-26T15:54:09Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[Teenusemonitor]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
* BASH [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* PYTHON [[Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib]]&lt;br /&gt;
* POWERSHELL [[Skript, mis küsib ACL-i objekte AD-st]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
Midagi mailiserveri logide põhjal?&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
Skript mis otsib kõik pildi,video,muusika,dokumendid ja jagab need kaustadesse.&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, mis jaotab failid suuruse järgi kaustadesse - bash]]&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaudu(lävend võiks näiteks olla 10 ebaõnnestunud katset) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;br /&gt;
&lt;br /&gt;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&lt;br /&gt;
&lt;br /&gt;
===Bash versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
&lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# sh check_ip.sh /var/log/auth.log /etc/iptables_blocked.txt&lt;br /&gt;
&lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
# mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
BLOCK_LEVEL=5&lt;br /&gt;
# auth.log faili asukoht&lt;br /&gt;
AUTH_LOG_FILE=$1&lt;br /&gt;
# tüüpilised veasituatsioonid&lt;br /&gt;
ERROR_PATTERNS=&amp;quot;error | illegal | not\ allowed&amp;quot;&lt;br /&gt;
# väljundfaili nimi (või asukoht)&lt;br /&gt;
IP_TABLES_FILE=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime etteantud argumenti&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No command-line arguments.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No IPTABLES file specified.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# kontrollime, et faili saaks kirjutada&lt;br /&gt;
touch &amp;quot;$IP_TABLES_FILE&amp;quot;&lt;br /&gt;
if [ -e $IP_TABLES_FILE ]; then&lt;br /&gt;
	echo &amp;quot;IPTABLES file: &amp;quot;$IP_TABLES_FILE&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Cannot write IPTABLES file!&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# itereerime yle logiridade&lt;br /&gt;
more $AUTH_LOG_FILE | egrep &amp;quot;$ERROR_PATTERNS&amp;quot; | while read line; do&lt;br /&gt;
	address=$(echo $line | grep -Eo &#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
	# kas on valiidne IP&lt;br /&gt;
	if [ ${#address} -gt 0 ]; then&lt;br /&gt;
		# loeme esinevuskorrad&lt;br /&gt;
		occurences=$(grep -c $address $AUTH_LOG_FILE)&lt;br /&gt;
		if [ $occurences -ge $BLOCK_LEVEL ]; then # kui on juba piisavalt feilinud IP&lt;br /&gt;
			added_occurences=$(grep -c $address $IP_TABLES_FILE)&lt;br /&gt;
			#kontrollime, et poleks juba lisatud&lt;br /&gt;
			if [ $added_occurences -lt 1 ]; then&lt;br /&gt;
				echo &amp;quot;Blacklisting &amp;quot;$address&amp;quot; with &amp;quot;$occurences&amp;quot; occurences&amp;quot;&lt;br /&gt;
				#kirjutame IPTABLES reegli&lt;br /&gt;
				echo &amp;quot;iptables -A INPUT -s &amp;quot;$address&amp;quot; -j DROP&amp;quot; &amp;gt;&amp;gt; $IP_TABLES_FILE&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Pythoni versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: latin-1 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
 &lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&lt;br /&gt;
 &lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
    BLOCK_LEVEL=5&lt;br /&gt;
    &lt;br /&gt;
    # kuvab kasutamise info&lt;br /&gt;
    def usage():&lt;br /&gt;
        print &#039;Programmi kasutamine:&#039;&lt;br /&gt;
        print &#039;py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&#039;&lt;br /&gt;
    &lt;br /&gt;
    # loendab stringi esinemised etteantud failis&lt;br /&gt;
    def matchCountInFile(str, filename):&lt;br /&gt;
        log_file = open(filename, &#039;r&#039;)&lt;br /&gt;
        count = 0&lt;br /&gt;
        for line in log_file:&lt;br /&gt;
            if re.search(str, line):&lt;br /&gt;
                count=count+1&lt;br /&gt;
        return count&lt;br /&gt;
    &lt;br /&gt;
    try:&lt;br /&gt;
        # loeme ja kontrollime getopti abil argumendid&lt;br /&gt;
        opts, args = getopt.getopt(sys.argv[1:], &amp;quot;li:v&amp;quot;, [&amp;quot;logfile=&amp;quot;, &amp;quot;iptablesfile=&amp;quot;])&lt;br /&gt;
        AUTH_LOG_FILE = &#039;&#039;&lt;br /&gt;
        IP_TABLES_FILE = &#039;&#039;&lt;br /&gt;
        for opt, arg in opts:&lt;br /&gt;
            if opt == &#039;--logfile&#039;:&lt;br /&gt;
                AUTH_LOG_FILE = arg&lt;br /&gt;
            elif opt == &#039;--iptablesfile&#039;:&lt;br /&gt;
                IP_TABLES_FILE = arg&lt;br /&gt;
&lt;br /&gt;
        print &#039;AUTH_LOG_FILE=&#039; + AUTH_LOG_FILE&lt;br /&gt;
        print &#039;IP_TABLES_FILE=&#039; + IP_TABLES_FILE&lt;br /&gt;
&lt;br /&gt;
        if AUTH_LOG_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid auth log filename&#039;)&lt;br /&gt;
        if IP_TABLES_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid iptables filename&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not os.path.isfile(AUTH_LOG_FILE):&lt;br /&gt;
            raise Exception(&#039;Auth log file does not exist&#039;)&lt;br /&gt;
&lt;br /&gt;
        ip_pattern = re.compile(&#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
        &lt;br /&gt;
        # valmistame logifaili lugemiseks ette&lt;br /&gt;
        log_file = open(AUTH_LOG_FILE, &#039;r&#039;)&lt;br /&gt;
        ip_address_array = []&lt;br /&gt;
        ip_tables_filehandle = None&lt;br /&gt;
        # itereerime yle logiridade&lt;br /&gt;
        for log_line in log_file:&lt;br /&gt;
            # read, mis on veaga&lt;br /&gt;
            if (re.search(&#039;error&#039;, log_line) != None or re.search(&#039;illegal&#039;,  log_line) != None or re.search(&#039;not allowed&#039;, log_line) != None):&lt;br /&gt;
                ip_address_match = re.search(ip_pattern, log_line)&lt;br /&gt;
                if (ip_address_match == None):&lt;br /&gt;
                    continue&lt;br /&gt;
                # leiame rea pealt IP aadressi&lt;br /&gt;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&lt;br /&gt;
                # vajadusel blacklistime&lt;br /&gt;
                if occurences &amp;gt;= BLOCK_LEVEL and not ip_address in ip_address_array:&lt;br /&gt;
                    ip_address_array.append(ip_address)&lt;br /&gt;
                    print &amp;quot;Blacklisting &amp;quot; + ip_address + &amp;quot; with &amp;quot; + str(occurences) + &amp;quot; occurences&amp;quot;&lt;br /&gt;
                    if ip_tables_filehandle == None:&lt;br /&gt;
                        ip_tables_filehandle = open(IP_TABLES_FILE, &#039;w&#039;)&lt;br /&gt;
                    ip_tables_filehandle.write(&amp;quot;iptables -A INPUT -s &amp;quot; + ip_address + &amp;quot; -j DROP\n&amp;quot;)&lt;br /&gt;
        log_file.close()&lt;br /&gt;
&lt;br /&gt;
        if (ip_tables_filehandle != None):&lt;br /&gt;
            ip_tables_filehandle.close()&lt;br /&gt;
&lt;br /&gt;
    except getopt.GetoptError, err:&lt;br /&gt;
        print str(err)&lt;br /&gt;
        usage()&lt;br /&gt;
        sys.exit(2)&lt;br /&gt;
&lt;br /&gt;
# k2ivitame meetodi&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_-_PowerShell&amp;diff=22780</id>
		<title>Skript, millega saab public folderitesse õiguseid lisada - PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skript,_millega_saab_public_folderitesse_%C3%B5iguseid_lisada_-_PowerShell&amp;diff=22780"/>
		<updated>2011-01-26T12:22:02Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Created page with &amp;#039;Esialgu saab antud asjaga ainult õiguseid lisada. Esialgne versioon. Täiendamisel :)  &amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt; #List public folderitest + kuupäev $i = Read-Host &amp;quot;Kas sa taha…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esialgu saab antud asjaga ainult õiguseid lisada. Esialgne versioon. Täiendamisel :)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
#List public folderitest + kuupäev&lt;br /&gt;
$i = Read-Host &amp;quot;Kas sa tahad listi public folderitest? Jah/Ei&amp;quot;&lt;br /&gt;
if ($i -eq &#039;Jah&#039;){&lt;br /&gt;
    Get-Date &amp;gt;  publicfolders.txt&lt;br /&gt;
    Get-PublicFolder -Recurse | Format-List Name &amp;gt;&amp;gt;  publicfolders.txt&lt;br /&gt;
    Write-Host &amp;quot;List public folderitest on loodud faili publicfolders.txt&amp;quot;&lt;br /&gt;
}else{&lt;br /&gt;
#Kui tead juba, kuhu õiguseid tahad&lt;br /&gt;
    $kaustanimi = read-host &amp;quot;Sisesta public folderi nimi kujul \peakaust\folder nimi&amp;quot;}&lt;br /&gt;
#Mis õigused antud kausta hetkel on&lt;br /&gt;
#$w = Get-PublicFolderClientPermission &amp;quot;$kaustanimi&amp;quot; | format-list&lt;br /&gt;
#Write-Host &amp;quot;Hetkel on antud kausta järgnevad õigused: &amp;quot; &lt;br /&gt;
#$w&lt;br /&gt;
#Kellele õiguseid tahetakse&lt;br /&gt;
$kasutajaalias = read-host &amp;quot;Sisesta tunnuse ALIAS, kellele õiguseid muudetakse: &amp;quot;&lt;br /&gt;
#Mis õiguseid tahetakse&lt;br /&gt;
$oigused = read-host &amp;quot;Vali õigused, mis lisatakse: &lt;br /&gt;
* None - FolderVisible&lt;br /&gt;
* Owner - CreateItems, ReadItems, CreateSubfolders, FolderOwner, Folder Contact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
* PublishingEditor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
* Editor - CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems&lt;br /&gt;
* PublishingAuthor - CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
* Author - CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems&lt;br /&gt;
* NonEditingAuthor - CreateItems, ReadItems, FolderVisible&lt;br /&gt;
* Reviewer - ReadItems, FolderVisible&lt;br /&gt;
* Contributor - CreateItems, FolderVisible&amp;quot;&lt;br /&gt;
#Õiguste lisamine&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    Add-PublicFolderClientPermission -Identity &amp;quot;$kaustanimi&amp;quot; -User &amp;quot;$kasutajaalias&amp;quot; -AccessRights $oigused;&lt;br /&gt;
    #Kuvatakse kellele ja mis õigused on antud.&lt;br /&gt;
    Write-Host &amp;quot;Järgnevale kasutajale: &amp;quot; &lt;br /&gt;
    $kasutajaalias &lt;br /&gt;
    Write-Host &amp;quot;Anti järgnevad õigused: &amp;quot;&lt;br /&gt;
    $oigused &lt;br /&gt;
    Write-Host &amp;quot;Sellisesse kausta:&amp;quot;&lt;br /&gt;
    $kaustanimi&lt;br /&gt;
}&lt;br /&gt;
Catch&lt;br /&gt;
{&lt;br /&gt;
    write-host &amp;quot;Midagi läks viltu (Error:&amp;quot;  $_.Exception.Message &amp;quot;)&amp;quot;&lt;br /&gt;
    write-host&lt;br /&gt;
}&lt;br /&gt;
finally &lt;br /&gt;
{ }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22779</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22779"/>
		<updated>2011-01-26T12:18:47Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: /* Chris Sinihelm AK41 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Vabad ideed==&lt;br /&gt;
*[[Skript mis otsib üles turvaaukudega tarkvara]]&lt;br /&gt;
&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
Suurima andmemahuga paketite leidmine&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
[[Skript leiab dublikaat failid]]&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik AK21==&lt;br /&gt;
&lt;br /&gt;
* Bash - Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&lt;br /&gt;
&lt;br /&gt;
* Python - SSH vigaste logimiste järgi source IP hosts.deny faili ja lisatud IP&#039;d mailile (saadetud õppejõu mailile)&lt;br /&gt;
&lt;br /&gt;
* PowerShell - Arvuti andmete (mälu hulk, protsessori tüüp jne.) kuvamine&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
*[[Python]]&lt;br /&gt;
*[[Teenusemonitor]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
*[[Skript mis otsib üles failid mille poole ei ole ammu pöördutud]]&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
Midagi mailiserveri logide põhjal?&lt;br /&gt;
&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
Skript mis otsib kõik pildi,video,muusika,dokumendid ja jagab need kaustadesse.&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - BASH]]&lt;br /&gt;
* [[Skript, mis teeb varukoopia WordPressi instantsist - Python]]&lt;br /&gt;
* [[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
[[Skript, millega saab public folderitesse õiguseid lisada - PowerShell]]&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;br /&gt;
Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaudu(lävend võiks näiteks olla 10 ebaõnnestunud katset) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;br /&gt;
&lt;br /&gt;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&lt;br /&gt;
&lt;br /&gt;
===Bash versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
&lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# sh check_ip.sh /var/log/auth.log /etc/iptables_blocked.txt&lt;br /&gt;
&lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
# mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
BLOCK_LEVEL=5&lt;br /&gt;
# auth.log faili asukoht&lt;br /&gt;
AUTH_LOG_FILE=$1&lt;br /&gt;
# tüüpilised veasituatsioonid&lt;br /&gt;
ERROR_PATTERNS=&amp;quot;error | illegal | not\ allowed&amp;quot;&lt;br /&gt;
# väljundfaili nimi (või asukoht)&lt;br /&gt;
IP_TABLES_FILE=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime etteantud argumenti&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No command-line arguments.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No IPTABLES file specified.&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# kontrollime, et faili saaks kirjutada&lt;br /&gt;
touch &amp;quot;$IP_TABLES_FILE&amp;quot;&lt;br /&gt;
if [ -e $IP_TABLES_FILE ]; then&lt;br /&gt;
	echo &amp;quot;IPTABLES file: &amp;quot;$IP_TABLES_FILE&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Cannot write IPTABLES file!&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# itereerime yle logiridade&lt;br /&gt;
more $AUTH_LOG_FILE | egrep &amp;quot;$ERROR_PATTERNS&amp;quot; | while read line; do&lt;br /&gt;
	address=$(echo $line | grep -Eo &#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
	# kas on valiidne IP&lt;br /&gt;
	if [ ${#address} -gt 0 ]; then&lt;br /&gt;
		# loeme esinevuskorrad&lt;br /&gt;
		occurences=$(grep -c $address $AUTH_LOG_FILE)&lt;br /&gt;
		if [ $occurences -ge $BLOCK_LEVEL ]; then # kui on juba piisavalt feilinud IP&lt;br /&gt;
			added_occurences=$(grep -c $address $IP_TABLES_FILE)&lt;br /&gt;
			#kontrollime, et poleks juba lisatud&lt;br /&gt;
			if [ $added_occurences -lt 1 ]; then&lt;br /&gt;
				echo &amp;quot;Blacklisting &amp;quot;$address&amp;quot; with &amp;quot;$occurences&amp;quot; occurences&amp;quot;&lt;br /&gt;
				#kirjutame IPTABLES reegli&lt;br /&gt;
				echo &amp;quot;iptables -A INPUT -s &amp;quot;$address&amp;quot; -j DROP&amp;quot; &amp;gt;&amp;gt; $IP_TABLES_FILE&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Pythoni versioon===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: latin-1 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
# Skript, mis loeb läbi UNIX-i auth.log faili ja koostab IPTables block reeglid IP aadressidele,&lt;br /&gt;
# mille pealt on autentimine ebaõnnestunud vähemalt etteantud arv kordi&lt;br /&gt;
 &lt;br /&gt;
# käivitamise näide:&lt;br /&gt;
# py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&lt;br /&gt;
 &lt;br /&gt;
# Autor: Sigmar Muuga, DK31&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # mitme ebaõnnestumise korral me IP blokeerime&lt;br /&gt;
    BLOCK_LEVEL=5&lt;br /&gt;
    &lt;br /&gt;
    # kuvab kasutamise info&lt;br /&gt;
    def usage():&lt;br /&gt;
        print &#039;Programmi kasutamine:&#039;&lt;br /&gt;
        print &#039;py check_ip.py --logfile=/path/to/logfile --iptablesfile=/path/to/iptablesfile&#039;&lt;br /&gt;
    &lt;br /&gt;
    # loendab stringi esinemised etteantud failis&lt;br /&gt;
    def matchCountInFile(str, filename):&lt;br /&gt;
        log_file = open(filename, &#039;r&#039;)&lt;br /&gt;
        count = 0&lt;br /&gt;
        for line in log_file:&lt;br /&gt;
            if re.search(str, line):&lt;br /&gt;
                count=count+1&lt;br /&gt;
        return count&lt;br /&gt;
    &lt;br /&gt;
    try:&lt;br /&gt;
        # loeme ja kontrollime getopti abil argumendid&lt;br /&gt;
        opts, args = getopt.getopt(sys.argv[1:], &amp;quot;li:v&amp;quot;, [&amp;quot;logfile=&amp;quot;, &amp;quot;iptablesfile=&amp;quot;])&lt;br /&gt;
        AUTH_LOG_FILE = &#039;&#039;&lt;br /&gt;
        IP_TABLES_FILE = &#039;&#039;&lt;br /&gt;
        for opt, arg in opts:&lt;br /&gt;
            if opt == &#039;--logfile&#039;:&lt;br /&gt;
                AUTH_LOG_FILE = arg&lt;br /&gt;
            elif opt == &#039;--iptablesfile&#039;:&lt;br /&gt;
                IP_TABLES_FILE = arg&lt;br /&gt;
&lt;br /&gt;
        print &#039;AUTH_LOG_FILE=&#039; + AUTH_LOG_FILE&lt;br /&gt;
        print &#039;IP_TABLES_FILE=&#039; + IP_TABLES_FILE&lt;br /&gt;
&lt;br /&gt;
        if AUTH_LOG_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid auth log filename&#039;)&lt;br /&gt;
        if IP_TABLES_FILE.__len__() &amp;lt; 1:&lt;br /&gt;
            raise Exception(&#039;Invalid iptables filename&#039;)&lt;br /&gt;
        &lt;br /&gt;
        if not os.path.isfile(AUTH_LOG_FILE):&lt;br /&gt;
            raise Exception(&#039;Auth log file does not exist&#039;)&lt;br /&gt;
&lt;br /&gt;
        ip_pattern = re.compile(&#039;([0-9]{1,3}\.){3}[0-9]{1,3}&#039;)&lt;br /&gt;
        &lt;br /&gt;
        # valmistame logifaili lugemiseks ette&lt;br /&gt;
        log_file = open(AUTH_LOG_FILE, &#039;r&#039;)&lt;br /&gt;
        ip_address_array = []&lt;br /&gt;
        ip_tables_filehandle = None&lt;br /&gt;
        # itereerime yle logiridade&lt;br /&gt;
        for log_line in log_file:&lt;br /&gt;
            # read, mis on veaga&lt;br /&gt;
            if (re.search(&#039;error&#039;, log_line) != None or re.search(&#039;illegal&#039;,  log_line) != None or re.search(&#039;not allowed&#039;, log_line) != None):&lt;br /&gt;
                ip_address_match = re.search(ip_pattern, log_line)&lt;br /&gt;
                if (ip_address_match == None):&lt;br /&gt;
                    continue&lt;br /&gt;
                # leiame rea pealt IP aadressi&lt;br /&gt;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&lt;br /&gt;
                # vajadusel blacklistime&lt;br /&gt;
                if occurences &amp;gt;= BLOCK_LEVEL and not ip_address in ip_address_array:&lt;br /&gt;
                    ip_address_array.append(ip_address)&lt;br /&gt;
                    print &amp;quot;Blacklisting &amp;quot; + ip_address + &amp;quot; with &amp;quot; + str(occurences) + &amp;quot; occurences&amp;quot;&lt;br /&gt;
                    if ip_tables_filehandle == None:&lt;br /&gt;
                        ip_tables_filehandle = open(IP_TABLES_FILE, &#039;w&#039;)&lt;br /&gt;
                    ip_tables_filehandle.write(&amp;quot;iptables -A INPUT -s &amp;quot; + ip_address + &amp;quot; -j DROP\n&amp;quot;)&lt;br /&gt;
        log_file.close()&lt;br /&gt;
&lt;br /&gt;
        if (ip_tables_filehandle != None):&lt;br /&gt;
            ip_tables_filehandle.close()&lt;br /&gt;
&lt;br /&gt;
    except getopt.GetoptError, err:&lt;br /&gt;
        print str(err)&lt;br /&gt;
        usage()&lt;br /&gt;
        sys.exit(2)&lt;br /&gt;
&lt;br /&gt;
# k2ivitame meetodi&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;br /&gt;
&lt;br /&gt;
*[[Skript mis otsib arvutist kõik .mp3 failid ja teeb nendest playlisti-Powershell]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:Exchange_2010_-_mis_on_uut_v%C3%B5rreldes_Exchange_2007_tootega&amp;diff=21867</id>
		<title>Talk:Exchange 2010 - mis on uut võrreldes Exchange 2007 tootega</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:Exchange_2010_-_mis_on_uut_v%C3%B5rreldes_Exchange_2007_tootega&amp;diff=21867"/>
		<updated>2011-01-03T17:50:09Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=14632</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=14632"/>
		<updated>2010-10-17T12:38:19Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Skriptimiskeeled]]&lt;br /&gt;
=Siia tulevad kodus tehtud tööde lingid=&lt;br /&gt;
&lt;br /&gt;
==Esitaja nimi==&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - BASH]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - Python]]&lt;br /&gt;
*[[Skript, mis teeb maailma paremaks - PowerShell]]&lt;br /&gt;
*[[Arvustused sellele skriptile]]&lt;br /&gt;
==Alvar Unuks AK41==&lt;br /&gt;
&lt;br /&gt;
==Reget Kalamees DK21==&lt;br /&gt;
[[Skript otsib vabade Wifi AP-de hulgast kõige kiirema ühenduse ja haagib end selle külge]]&lt;br /&gt;
&lt;br /&gt;
==Kaspar Prei==&lt;br /&gt;
Skript leiab dublikaat failid&lt;br /&gt;
&lt;br /&gt;
==Lembit Elmik==&lt;br /&gt;
&lt;br /&gt;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
&lt;br /&gt;
==Marko Valing==&lt;br /&gt;
*[[XML päringute sageduse kontroll - BASH]]&lt;br /&gt;
&lt;br /&gt;
==Lauri Liibert AK21==&lt;br /&gt;
&lt;br /&gt;
==Siim Liivand AK41==&lt;br /&gt;
==Sander Tuulik AK41==&lt;br /&gt;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
==Chris Sinihelm AK41==&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:Exchange_2010_-_mis_on_uut_v%C3%B5rreldes_Exchange_2007_tootega&amp;diff=9329</id>
		<title>Talk:Exchange 2010 - mis on uut võrreldes Exchange 2007 tootega</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:Exchange_2010_-_mis_on_uut_v%C3%B5rreldes_Exchange_2007_tootega&amp;diff=9329"/>
		<updated>2010-05-09T07:30:10Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ei serveri külge vaid CAS*’i külge&amp;lt;br&amp;gt;&lt;br /&gt;
OK:&amp;lt;br&amp;gt;&lt;br /&gt;
Klient ühendub Client Access serveri (CAS*) kaudu Exchange 2010 Mailbox serveriga.&lt;br /&gt;
CAS&#039;i roll on põhimõtteliselt võtta vastu ühendusi erinevatelt klientidelt(OWA*, ActiveSync kliendid).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mailboxe - postkast&amp;lt;br&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWA ei tööta erinevate browseritega&amp;lt;br&amp;gt;&lt;br /&gt;
OK:&amp;lt;br&amp;gt;&lt;br /&gt;
Toetatakse browsereid: Internet Explorer 7+, Firefox 3+, ja Safari 3+.&lt;br /&gt;
Internet Explorer 6 on mängust väljas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ei tööta jagatud kalender ja public folderite jagamine.&amp;lt;br&amp;gt;&lt;br /&gt;
OK:&amp;lt;br&amp;gt;&lt;br /&gt;
OWA võimaldab jagada kalendreid inimestega väljastpoolt enda firmat. Selle kaudu on võimalik ka jagada Public Foldereid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IE6 ei tööta&amp;lt;br&amp;gt;&lt;br /&gt;
OK&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:Exchange_2010_-_mis_on_uut_v%C3%B5rreldes_Exchange_2007_tootega&amp;diff=9321</id>
		<title>Talk:Exchange 2010 - mis on uut võrreldes Exchange 2007 tootega</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:Exchange_2010_-_mis_on_uut_v%C3%B5rreldes_Exchange_2007_tootega&amp;diff=9321"/>
		<updated>2010-05-09T07:13:03Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;i serveri külge vaid CAS*’i külge&lt;br /&gt;
OK:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mailboxe - postkast&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
OWA ei tööta erinevate browseritega. - ei tööta jagatud kalender ja public folderite jagamine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IE6 ei tööta&lt;br /&gt;
OK&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:Kerberos&amp;diff=8493</id>
		<title>Talk:Kerberos</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:Kerberos&amp;diff=8493"/>
		<updated>2010-05-01T17:49:29Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: New page: Sisu on ok aga siin mõned parandused:   1)Versioon  -Seda pealkirja pole vist vaja?  2)&amp;quot;liht tekstine&amp;quot;   -kirjutatakse kokku?  3)Kerberos 5 on defineeritud RFC1510   -mis see tähendab  -...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sisu on ok aga siin mõned parandused:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1)Versioon&lt;br /&gt;
&lt;br /&gt;
-Seda pealkirja pole vist vaja?&lt;br /&gt;
&lt;br /&gt;
2)&amp;quot;liht tekstine&amp;quot; &lt;br /&gt;
&lt;br /&gt;
-kirjutatakse kokku?&lt;br /&gt;
&lt;br /&gt;
3)Kerberos 5 on defineeritud RFC1510 &lt;br /&gt;
&lt;br /&gt;
-mis see tähendab&lt;br /&gt;
&lt;br /&gt;
-lause lõpus ei ole punkti&lt;br /&gt;
&lt;br /&gt;
4)&amp;quot;Termin Kerberose infrastruktuur tähendab tarkvara, servereid, ja kliendi &lt;br /&gt;
konfiguratsiooni mis lubab administraatoril kasutada Kerberose protokolli et &lt;br /&gt;
autentida võrgus.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-enne &amp;quot;ja&amp;quot; ei ole koma&lt;br /&gt;
&lt;br /&gt;
-enne &amp;quot;mis&amp;quot; on koma&lt;br /&gt;
&lt;br /&gt;
-enne &amp;quot;et&amp;quot; on koma&lt;br /&gt;
&lt;br /&gt;
5)&amp;quot;Kerberos on autentimise protokoll mis kasutab&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-mis ees koma&lt;br /&gt;
&lt;br /&gt;
-et ees on koma&lt;br /&gt;
&lt;br /&gt;
6)&amp;quot;partei vahend&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-partei on mis?&lt;br /&gt;
&lt;br /&gt;
party nagu osapool ehk?&lt;br /&gt;
&lt;br /&gt;
7)&amp;quot;Key Distribution Center (KDC) mis &amp;quot;&lt;br /&gt;
&lt;br /&gt;
-mis ees koma&lt;br /&gt;
&lt;br /&gt;
8)daemonid&lt;br /&gt;
&lt;br /&gt;
-on mis? edaspidi on deemonid?&lt;br /&gt;
&lt;br /&gt;
9)&amp;quot;parool mis on&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-mis ees on koma&lt;br /&gt;
&lt;br /&gt;
10) Kerberose deemonit&lt;br /&gt;
&lt;br /&gt;
-kas siin peaks olema ka daemonit nagu eespool?&lt;br /&gt;
&lt;br /&gt;
11)&amp;quot;Need kaks deemonit jooksevad kui root kasutajate keskkonnas&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-miks &amp;quot;kui&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
12)kadmind on administreerimis deemon&lt;br /&gt;
 &lt;br /&gt;
-lause peaks algama suure tähega&lt;br /&gt;
&lt;br /&gt;
-administreerimisdeemon kirjutatakse kokku või siis&lt;br /&gt;
administreerimise deemon&lt;br /&gt;
&lt;br /&gt;
13)&amp;quot;MIT tegi Kerberose vabalt kättesaadavaks, sarnaste copyrighti lubade alusel nagu kasutati BSD puhul.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-lauses ei ole koma&lt;br /&gt;
&lt;br /&gt;
14)&amp;quot;2007 aastal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-peale 2007 on punkt või siis 2007ndal&lt;br /&gt;
&lt;br /&gt;
15)&amp;quot;Sellese&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-sellesse&lt;br /&gt;
&lt;br /&gt;
16)Viimase lause lõppu punkt.&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4065</id>
		<title>User:Csinihel</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4065"/>
		<updated>2010-02-21T16:58:27Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Exchange 2010 - mis on uut võrreldes Exchange 2007 tootega]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4061</id>
		<title>User:Csinihel</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4061"/>
		<updated>2010-02-21T16:53:27Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testikas&lt;br /&gt;
[[Exchange 2010 - mis on uut võrreldes Exchange 2007 tootega]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4059</id>
		<title>User:Csinihel</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4059"/>
		<updated>2010-02-21T16:52:07Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testikas&lt;br /&gt;
[[Exchange]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4058</id>
		<title>User:Csinihel</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4058"/>
		<updated>2010-02-21T16:50:57Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testikas&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4057</id>
		<title>User:Csinihel</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Csinihel&amp;diff=4057"/>
		<updated>2010-02-21T16:49:54Z</updated>

		<summary type="html">&lt;p&gt;Csinihel: New page: Testikas  Category:Operatsioonisüsteemide administreerimine ja sidumine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testikas&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Csinihel</name></author>
	</entry>
</feed>