<?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=Smuuga</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=Smuuga"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php/Special:Contributions/Smuuga"/>
	<updated>2026-05-07T03:09:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=PowerShelli_n%C3%A4idisteemad_kodut%C3%B6%C3%B6deks_2010,_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=23003</id>
		<title>PowerShelli näidisteemad kodutöödeks 2010, sügis, kaugõpe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=PowerShelli_n%C3%A4idisteemad_kodut%C3%B6%C3%B6deks_2010,_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=23003"/>
		<updated>2011-01-31T05:10:57Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Kirjasaatja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Kodune arvestustöö=&lt;br /&gt;
&#039;&#039;&#039;NB! Teha tuleb kõik ülesanded ja saata hiljemalt 30.01.2010 õppejõule: heiki.tahis [ät] eesti.ee&#039;&#039;&#039; Lisa lühikesed selgitused, kuidas töötab, kust abi leidsid&lt;br /&gt;
&lt;br /&gt;
==Kirjasaatja==&lt;br /&gt;
Kirjuta skript, mis küsib kasutajalt saaja nime, e-maili, teemat ning kirjasisu ning saadab vastava e-kirja. &lt;br /&gt;
* Saatjaaadressi ja nimena kasuta oma andmeid! &lt;br /&gt;
* SMTP server peab olema ka skriptis kirjas. &lt;br /&gt;
* Koodi kommentaaridest peab olema aru saada, mida muuta tuleb, et enda andmed asemele panna&lt;br /&gt;
&lt;br /&gt;
==Suured failid==&lt;br /&gt;
Loo skript, mis leiab etteantud kettalt/kaustast kümme kõige suuremat faili ja küsib, kas kustutab need&lt;br /&gt;
* Kui vastata jah, siis loomulikult kustutab ka :)&lt;br /&gt;
&lt;br /&gt;
=Kodused projektid=&lt;br /&gt;
Need on siis need skriptid, mis tuleks esitada [[Skriptimiskeeled aine aruanded 2010 sügis]] lehel, korralikult dokumenteerida ja kirjeldada. Vali üks ja lisa oma nimi, et teised teaksid, et teema on võetud.&lt;br /&gt;
&lt;br /&gt;
==Arhivaator==&lt;br /&gt;
Loo skript, mis küsib kasutaja käest faililaiendi (näiteks .txt) ja asukoha (ketta või kataloogi) ning pakib kõik sellest kataloogist leitud vastava laiendiga failid .zip arhiiviks failid-aasta-kuu-kp.zip (näiteks failid-2011-01-24.zip)&lt;br /&gt;
&lt;br /&gt;
[[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell|Kristjan Karmo AK41]]&lt;br /&gt;
&lt;br /&gt;
==Korduvad failinimed==&lt;br /&gt;
Loo skript, mis leiab etteantud kataloogist või kettalt samanimelised failid ja väljastab nende nimekirja.&lt;br /&gt;
&lt;br /&gt;
[[Sander Tuulik AK41]]&lt;br /&gt;
&lt;br /&gt;
==Arvutiinfo==&lt;br /&gt;
Loo skript, mis leiab arvuti seadeid ja konfiguratsiooni puudutava info (arvuti nimi, mälu hulk, protsessoritüüp jne) ning väljastab selle&lt;br /&gt;
&lt;br /&gt;
[[Lembit Elmik AK21]]&lt;br /&gt;
&lt;br /&gt;
==Teenusemonitor==&lt;br /&gt;
Loo skript, mis kontrollib, kas mingi teenus (näiteks Spooler) töötab ning kui ei tööta, siis saadab e-kirja, teatega, et teenus ei tööta.&lt;br /&gt;
&lt;br /&gt;
[[Teenusemonitor|Marko Valing AK31]]&lt;br /&gt;
&lt;br /&gt;
==Rakendusemonitor==&lt;br /&gt;
Loo skript, mis kontrollib, kas mingi rakendus (näiteks Firefox) töötab ning kui töötab, siis saadab e-kirja, teatega, et kasutaja see ja see kasutab seda rakendust.&lt;br /&gt;
&lt;br /&gt;
==Printerihaldur==&lt;br /&gt;
Loo [[skript, mis teeb midagi printeritega| skript]], mis leiab arvutisse paigaldatud printerid ning kuvab need. Kui arvutisse on paigaldatud &amp;quot;HP LaserJet 5L&amp;quot; printer, siis määrab selle vaikepriteriks.&lt;br /&gt;
&lt;br /&gt;
Siim Liivand, AK41&lt;br /&gt;
&lt;br /&gt;
==Viimati muudetud failid==&lt;br /&gt;
Loo skript, mis leiab 20 viimatimuudetud faili ja väljastab vastava nimekirja HTML formaadis&lt;br /&gt;
&lt;br /&gt;
[[Alvar Unuks AK42, sügis, kaugõpe|Alvar Unuks AK42]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$DateToCompare = (Get-date).AddDays(-15)&lt;br /&gt;
get-childitem   -recurse | where-object {$_.lastwritetime –gt $DateToCompare}| Sort LastWriteTime -descending | select -first 20 | ConvertTo-Html &amp;gt; protsessid.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Paigaldatud tooted==&lt;br /&gt;
Loo skript, mis salvestaks info paigaldatud toodete (rakenduste) kohta CSV formaadis faili.&lt;br /&gt;
&lt;br /&gt;
[[Paigaldatud tooted | Reget Kalamees DK21]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
get-wmiobject -class &amp;quot;Win32_Product&amp;quot; -namespace &amp;quot;root\CIMV2&amp;quot; -computername &amp;quot;.&amp;quot; | Select-Object -Property [A-Z]* | Sort-Object Caption |  Export-Csv installeeritud.csv&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Evenlog&#039;i edastaja==&lt;br /&gt;
Loo 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.&lt;br /&gt;
&lt;br /&gt;
Kaspar Prei AK41&lt;br /&gt;
&lt;br /&gt;
==Kasutajaimporter==&lt;br /&gt;
Loo CSV fail, kus on andmed järgmiselt: kasutajanimi, parool, täisnimi, grupp&lt;br /&gt;
&lt;br /&gt;
Loo skript, mis looks kohalikud kasutajad ja grupid failis toodud andmete järgi&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=23002</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga/Poweshell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=23002"/>
		<updated>2011-01-31T05:10:03Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Skript, mis saadab e-maili */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sigmar Muuga Poweshelli asjad==&lt;br /&gt;
===Skript, mis saadab e-maili===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
# Skripts, mis kysib interaktiivselt parameetrid ja saadab vastavalt sisestatud andmetele e-maili&lt;br /&gt;
# Autor: Sigmar Muuga DK31&lt;br /&gt;
&lt;br /&gt;
$emailFrom = Read-Host &amp;quot;Kellelt saadad e-maili?&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;E-maili saatja on $emailFrom&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$emailTo = Read-Host &amp;quot;Kellelel saadad e-maili&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;E-mail saadetakse aadressile: $emailTo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$subject = Read-Host &amp;quot;E-maili teema:&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;E-maili teema on: $subject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$body = Read-Host &amp;quot;Kirja sisu:&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;Kirja sisuks on: $body&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$smtpServer = Read-Host &amp;quot;SMTP serveri aadress:&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;SMTP serveriks on: $smtpServer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;Saadame e-maili...&amp;quot;&lt;br /&gt;
$smtp = new-object Net.Mail.SmtpClient($smtpServer)&lt;br /&gt;
$smtp.Send($emailFrom, $emailTo, $subject, $body)&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;E-mail saadetud!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=PowerShelli_n%C3%A4idisteemad_kodut%C3%B6%C3%B6deks_2010,_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=23001</id>
		<title>PowerShelli näidisteemad kodutöödeks 2010, sügis, kaugõpe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=PowerShelli_n%C3%A4idisteemad_kodut%C3%B6%C3%B6deks_2010,_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=23001"/>
		<updated>2011-01-31T05:07:56Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Kirjasaatja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Kodune arvestustöö=&lt;br /&gt;
&#039;&#039;&#039;NB! Teha tuleb kõik ülesanded ja saata hiljemalt 30.01.2010 õppejõule: heiki.tahis [ät] eesti.ee&#039;&#039;&#039; Lisa lühikesed selgitused, kuidas töötab, kust abi leidsid&lt;br /&gt;
&lt;br /&gt;
==Kirjasaatja==&lt;br /&gt;
Kirjuta skript, mis küsib kasutajalt saaja nime, e-maili, teemat ning kirjasisu ning saadab vastava e-kirja. &lt;br /&gt;
* Saatjaaadressi ja nimena kasuta oma andmeid! &lt;br /&gt;
* SMTP server peab olema ka skriptis kirjas. &lt;br /&gt;
* Koodi kommentaaridest peab olema aru saada, mida muuta tuleb, et enda andmed asemele panna&lt;br /&gt;
&lt;br /&gt;
[http://wiki.itcollege.ee/index.php/Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell#Sigmar_Muuga_Poweshelli_asjad Sigmar Muuga]&lt;br /&gt;
&lt;br /&gt;
==Suured failid==&lt;br /&gt;
Loo skript, mis leiab etteantud kettalt/kaustast kümme kõige suuremat faili ja küsib, kas kustutab need&lt;br /&gt;
* Kui vastata jah, siis loomulikult kustutab ka :)&lt;br /&gt;
&lt;br /&gt;
=Kodused projektid=&lt;br /&gt;
Need on siis need skriptid, mis tuleks esitada [[Skriptimiskeeled aine aruanded 2010 sügis]] lehel, korralikult dokumenteerida ja kirjeldada. Vali üks ja lisa oma nimi, et teised teaksid, et teema on võetud.&lt;br /&gt;
&lt;br /&gt;
==Arhivaator==&lt;br /&gt;
Loo skript, mis küsib kasutaja käest faililaiendi (näiteks .txt) ja asukoha (ketta või kataloogi) ning pakib kõik sellest kataloogist leitud vastava laiendiga failid .zip arhiiviks failid-aasta-kuu-kp.zip (näiteks failid-2011-01-24.zip)&lt;br /&gt;
&lt;br /&gt;
[[Skript, mis arhiveerib etteantud laiendiga failid - PowerShell|Kristjan Karmo AK41]]&lt;br /&gt;
&lt;br /&gt;
==Korduvad failinimed==&lt;br /&gt;
Loo skript, mis leiab etteantud kataloogist või kettalt samanimelised failid ja väljastab nende nimekirja.&lt;br /&gt;
&lt;br /&gt;
[[Sander Tuulik AK41]]&lt;br /&gt;
&lt;br /&gt;
==Arvutiinfo==&lt;br /&gt;
Loo skript, mis leiab arvuti seadeid ja konfiguratsiooni puudutava info (arvuti nimi, mälu hulk, protsessoritüüp jne) ning väljastab selle&lt;br /&gt;
&lt;br /&gt;
[[Lembit Elmik AK21]]&lt;br /&gt;
&lt;br /&gt;
==Teenusemonitor==&lt;br /&gt;
Loo skript, mis kontrollib, kas mingi teenus (näiteks Spooler) töötab ning kui ei tööta, siis saadab e-kirja, teatega, et teenus ei tööta.&lt;br /&gt;
&lt;br /&gt;
[[Teenusemonitor|Marko Valing AK31]]&lt;br /&gt;
&lt;br /&gt;
==Rakendusemonitor==&lt;br /&gt;
Loo skript, mis kontrollib, kas mingi rakendus (näiteks Firefox) töötab ning kui töötab, siis saadab e-kirja, teatega, et kasutaja see ja see kasutab seda rakendust.&lt;br /&gt;
&lt;br /&gt;
==Printerihaldur==&lt;br /&gt;
Loo [[skript, mis teeb midagi printeritega| skript]], mis leiab arvutisse paigaldatud printerid ning kuvab need. Kui arvutisse on paigaldatud &amp;quot;HP LaserJet 5L&amp;quot; printer, siis määrab selle vaikepriteriks.&lt;br /&gt;
&lt;br /&gt;
Siim Liivand, AK41&lt;br /&gt;
&lt;br /&gt;
==Viimati muudetud failid==&lt;br /&gt;
Loo skript, mis leiab 20 viimatimuudetud faili ja väljastab vastava nimekirja HTML formaadis&lt;br /&gt;
&lt;br /&gt;
[[Alvar Unuks AK42, sügis, kaugõpe|Alvar Unuks AK42]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$DateToCompare = (Get-date).AddDays(-15)&lt;br /&gt;
get-childitem   -recurse | where-object {$_.lastwritetime –gt $DateToCompare}| Sort LastWriteTime -descending | select -first 20 | ConvertTo-Html &amp;gt; protsessid.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Paigaldatud tooted==&lt;br /&gt;
Loo skript, mis salvestaks info paigaldatud toodete (rakenduste) kohta CSV formaadis faili.&lt;br /&gt;
&lt;br /&gt;
[[Paigaldatud tooted | Reget Kalamees DK21]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
get-wmiobject -class &amp;quot;Win32_Product&amp;quot; -namespace &amp;quot;root\CIMV2&amp;quot; -computername &amp;quot;.&amp;quot; | Select-Object -Property [A-Z]* | Sort-Object Caption |  Export-Csv installeeritud.csv&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Evenlog&#039;i edastaja==&lt;br /&gt;
Loo 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.&lt;br /&gt;
&lt;br /&gt;
Kaspar Prei AK41&lt;br /&gt;
&lt;br /&gt;
==Kasutajaimporter==&lt;br /&gt;
Loo CSV fail, kus on andmed järgmiselt: kasutajanimi, parool, täisnimi, grupp&lt;br /&gt;
&lt;br /&gt;
Loo skript, mis looks kohalikud kasutajad ja grupid failis toodud andmete järgi&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=23000</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga/Poweshell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=23000"/>
		<updated>2011-01-31T05:06:55Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga Poweshelli asjad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sigmar Muuga Poweshelli asjad==&lt;br /&gt;
===Skript, mis saadab e-maili===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$emailFrom = Read-Host &amp;quot;Kellelt saadad e-maili?&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;E-maili saatja on $emailFrom&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$emailTo = Read-Host &amp;quot;Kellelel saadad e-maili&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;E-mail saadetakse aadressile: $emailTo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$subject = Read-Host &amp;quot;E-maili teema:&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;E-maili teema on: $subject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$body = Read-Host &amp;quot;Kirja sisu:&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;Kirja sisuks on: $body&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$smtpServer = Read-Host &amp;quot;SMTP serveri aadress:&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;SMTP serveriks on: $smtpServer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;Saadame e-maili...&amp;quot;&lt;br /&gt;
$smtp = new-object Net.Mail.SmtpClient($smtpServer)&lt;br /&gt;
$smtp.Send($emailFrom, $emailTo, $subject, $body)&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;E-mail saadetud!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash&amp;diff=22923</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga/Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash&amp;diff=22923"/>
		<updated>2011-01-28T10:58:15Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Tunnitöö - failijagaja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sigmar Muuga Bashi asjad ==&lt;br /&gt;
===Kodutöö===&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;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&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;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=22903</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga/Poweshell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=22903"/>
		<updated>2011-01-28T09:49:28Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga Poweshelli asjad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sigmar Muuga Poweshelli asjad==&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga&amp;diff=22902</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga&amp;diff=22902"/>
		<updated>2011-01-28T09:49:04Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga&amp;diff=22901</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga&amp;diff=22901"/>
		<updated>2011-01-28T09:48:39Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Kodutöö */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
===Tunnitööd - failijagaja ===&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 jagaks etteantud grupile uue kausta&lt;br /&gt;
#&lt;br /&gt;
# Autor: Sigmar Muuga DK31&lt;br /&gt;
#&lt;br /&gt;
# Kasutamine: jaga.sh KAUST GRUPP &amp;lt;JAGATUD KAUST&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Skript teeb järgnevat&lt;br /&gt;
# paigaldab samba (see osa pole kohustuslik)&lt;br /&gt;
# loob kausta KAUST (kui vaja)&lt;br /&gt;
# loob grupi GRUPP (kui vaja)&lt;br /&gt;
# lisab grupile sobivad read smb.conf faili ja teeb failiserveri teenusele #reload&#039;i&lt;br /&gt;
&lt;br /&gt;
usage=&amp;quot;Usage: jaga.sh &amp;lt;yourfolder&amp;gt; &amp;lt;yourgroup&amp;gt;&amp;quot;&lt;br /&gt;
smb_conf=&amp;quot;smb.conf&amp;quot;&lt;br /&gt;
smb_conf_new=$smb_conf&amp;quot;.new&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# kaust peab olema m22ratud&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No folder specified.&amp;quot;&lt;br /&gt;
	echo $usage&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# grupp peab olema m22ratud&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No group specified.&amp;quot;&lt;br /&gt;
	echo $usage&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
folder=$1&lt;br /&gt;
group=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime, kas kaust on olemas ja kui pole, siis teeme selle&lt;br /&gt;
if [ ! -e $folder ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Folder does not exists, creating it now..&amp;quot;&lt;br /&gt;
	mkdir $folder&lt;br /&gt;
	echo &amp;quot;Folder created&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
group_count=$(grep -c --word-regexp $group &amp;quot;/etc/group&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# kontrollime, kas grupp on olemas, kui pole, loob selle&lt;br /&gt;
if [ $group_count -lt 1 ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Group &amp;quot;$group&amp;quot; does not exist, creating it...&amp;quot;&lt;br /&gt;
	groupadd $group&lt;br /&gt;
	echo &amp;quot;Group created&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;So far so good, lets smash the smb.conf...\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp $smb_conf $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[&amp;quot;$folder&amp;quot;]&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	comment = &amp;quot;$folder&amp;quot; access share&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	path=&amp;quot;$folder &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	browseable = yes&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	valid users = @&amp;quot;$group &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Share added to smb.conf, now testing the conf...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
testparm -s $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
mv $smb_conf_new $smb_conf&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Restarting samba&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/etc.init.d/samba restart&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Folder shared!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=22900</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga/Poweshell</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Poweshell&amp;diff=22900"/>
		<updated>2011-01-28T09:47:41Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: Created page with &amp;#039;=Sigmar Muuga Poweshelli asjad=&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Sigmar Muuga Poweshelli asjad=&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22899</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=22899"/>
		<updated>2011-01-28T09:46:57Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22898</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=22898"/>
		<updated>2011-01-28T09:46:35Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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/Python 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>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Python&amp;diff=22896</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga/Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Python&amp;diff=22896"/>
		<updated>2011-01-28T09:44:57Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: Created page with &amp;#039;== Sigmar Muuga Python == ===Kodutöö===  Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH kaud…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sigmar Muuga Python ==&lt;br /&gt;
===Kodutöö===&lt;br /&gt;
&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). Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&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;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash&amp;diff=22894</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga/Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga/Bash&amp;diff=22894"/>
		<updated>2011-01-28T09:43:00Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: Created page with &amp;#039;== Sigmar Muuga Bashi asjad == ===Kodutöö=== Skript, mis vaatab /var/log/auth.log faili ja võtab sealt enim ebaõnnestunud IP aadressid, mis üritasid teha sisse logimist SSH …&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sigmar Muuga Bashi asjad ==&lt;br /&gt;
===Kodutöö===&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;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&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;
===Tunnitöö - failijagaja===&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 jagaks etteantud grupile uue kausta&lt;br /&gt;
#&lt;br /&gt;
# Autor: Sigmar Muuga DK31&lt;br /&gt;
#&lt;br /&gt;
# Kasutamine: jaga.sh KAUST GRUPP &amp;lt;JAGATUD KAUST&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Skript teeb järgnevat&lt;br /&gt;
# paigaldab samba (see osa pole kohustuslik)&lt;br /&gt;
# loob kausta KAUST (kui vaja)&lt;br /&gt;
# loob grupi GRUPP (kui vaja)&lt;br /&gt;
# lisab grupile sobivad read smb.conf faili ja teeb failiserveri teenusele #reload&#039;i&lt;br /&gt;
&lt;br /&gt;
usage=&amp;quot;Usage: jaga.sh &amp;lt;yourfolder&amp;gt; &amp;lt;yourgroup&amp;gt;&amp;quot;&lt;br /&gt;
smb_conf=&amp;quot;smb.conf&amp;quot;&lt;br /&gt;
smb_conf_new=$smb_conf&amp;quot;.new&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# kaust peab olema m22ratud&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No folder specified.&amp;quot;&lt;br /&gt;
	echo $usage&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# grupp peab olema m22ratud&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No group specified.&amp;quot;&lt;br /&gt;
	echo $usage&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
folder=$1&lt;br /&gt;
group=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime, kas kaust on olemas ja kui pole, siis teeme selle&lt;br /&gt;
if [ ! -e $folder ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Folder does not exists, creating it now..&amp;quot;&lt;br /&gt;
	mkdir $folder&lt;br /&gt;
	echo &amp;quot;Folder created&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
group_count=$(grep -c --word-regexp $group &amp;quot;/etc/group&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# kontrollime, kas grupp on olemas, kui pole, loob selle&lt;br /&gt;
if [ $group_count -lt 1 ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Group &amp;quot;$group&amp;quot; does not exist, creating it...&amp;quot;&lt;br /&gt;
	groupadd $group&lt;br /&gt;
	echo &amp;quot;Group created&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;So far so good, lets smash the smb.conf...\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp $smb_conf $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[&amp;quot;$folder&amp;quot;]&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	comment = &amp;quot;$folder&amp;quot; access share&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	path=&amp;quot;$folder &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	browseable = yes&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	valid users = @&amp;quot;$group &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Share added to smb.conf, now testing the conf...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
testparm -s $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
mv $smb_conf_new $smb_conf&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Restarting samba&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/etc.init.d/samba restart&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Folder shared!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga&amp;diff=22892</id>
		<title>Skriptimiskeeled aine aruanded 2010 sügis/SigmarMuuga</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis/SigmarMuuga&amp;diff=22892"/>
		<updated>2011-01-28T09:39:37Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: Created page with &amp;#039;===Kodutöö=== 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 o…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Kodutöö===&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;
Jah, ma tean, et on ka paremaid viise hoste blokeerida, näiteks kasutada hosts-allow parameetrit ssh konfiguratsioonis.&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;
===Tunnitööd - failijagaja ===&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 jagaks etteantud grupile uue kausta&lt;br /&gt;
#&lt;br /&gt;
# Autor: Sigmar Muuga DK31&lt;br /&gt;
#&lt;br /&gt;
# Kasutamine: jaga.sh KAUST GRUPP &amp;lt;JAGATUD KAUST&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Skript teeb järgnevat&lt;br /&gt;
# paigaldab samba (see osa pole kohustuslik)&lt;br /&gt;
# loob kausta KAUST (kui vaja)&lt;br /&gt;
# loob grupi GRUPP (kui vaja)&lt;br /&gt;
# lisab grupile sobivad read smb.conf faili ja teeb failiserveri teenusele #reload&#039;i&lt;br /&gt;
&lt;br /&gt;
usage=&amp;quot;Usage: jaga.sh &amp;lt;yourfolder&amp;gt; &amp;lt;yourgroup&amp;gt;&amp;quot;&lt;br /&gt;
smb_conf=&amp;quot;smb.conf&amp;quot;&lt;br /&gt;
smb_conf_new=$smb_conf&amp;quot;.new&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# kaust peab olema m22ratud&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No folder specified.&amp;quot;&lt;br /&gt;
	echo $usage&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# grupp peab olema m22ratud&lt;br /&gt;
if [ -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
	echo &amp;quot;No group specified.&amp;quot;&lt;br /&gt;
	echo $usage&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
folder=$1&lt;br /&gt;
group=$2&lt;br /&gt;
&lt;br /&gt;
# kontrollime, kas kaust on olemas ja kui pole, siis teeme selle&lt;br /&gt;
if [ ! -e $folder ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Folder does not exists, creating it now..&amp;quot;&lt;br /&gt;
	mkdir $folder&lt;br /&gt;
	echo &amp;quot;Folder created&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
group_count=$(grep -c --word-regexp $group &amp;quot;/etc/group&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# kontrollime, kas grupp on olemas, kui pole, loob selle&lt;br /&gt;
if [ $group_count -lt 1 ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Group &amp;quot;$group&amp;quot; does not exist, creating it...&amp;quot;&lt;br /&gt;
	groupadd $group&lt;br /&gt;
	echo &amp;quot;Group created&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;So far so good, lets smash the smb.conf...\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp $smb_conf $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[&amp;quot;$folder&amp;quot;]&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	comment = &amp;quot;$folder&amp;quot; access share&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	path=&amp;quot;$folder &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	browseable = yes&amp;quot; &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
echo &amp;quot;	valid users = @&amp;quot;$group &amp;gt;&amp;gt; $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Share added to smb.conf, now testing the conf...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
testparm -s $smb_conf_new&lt;br /&gt;
&lt;br /&gt;
mv $smb_conf_new $smb_conf&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Restarting samba&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/etc.init.d/samba restart&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Folder shared!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22705</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=22705"/>
		<updated>2011-01-23T01:24:20Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Pythoni versioon */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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... - PowerShell&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&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;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22704</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=22704"/>
		<updated>2011-01-23T01:23:15Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Pythoni versioon */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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... - PowerShell&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&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;
# python check_ip.py /var/log/auth.log /etc/iptables_blocked.txt&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;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22703</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=22703"/>
		<updated>2011-01-23T01:18:59Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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... - PowerShell&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&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;
# python check_ip.py /var/log/auth.log /etc/iptables_blocked.txt&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;
    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;
    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;
    # kontrollime etteantud argumenti&lt;br /&gt;
    try:&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;
        # poolik&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;
        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;
        for log_line in log_file:&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;
                ip_address = ip_address_match.group(0)&lt;br /&gt;
                occurences = matchCountInFile(ip_address, AUTH_LOG_FILE)&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;
                &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;
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;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22675</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=22675"/>
		<updated>2011-01-16T23:47:04Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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... - PowerShell&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&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;
&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;
&lt;br /&gt;
==Siim Kullerkupp AK21==&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=22674</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=22674"/>
		<updated>2011-01-16T23:41:52Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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... - PowerShell&lt;br /&gt;
&lt;br /&gt;
==Chris Sinihelm AK41==&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;
==Siim Kullerkupp AK21==&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22iTeam%22&amp;diff=21050</id>
		<title>Meeskond &quot;iTeam&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22iTeam%22&amp;diff=21050"/>
		<updated>2010-12-19T08:41:48Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* 18.12.2010 - Terve tiim, &amp;quot;HackFest - Client MamboJambo&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Teema==&lt;br /&gt;
&lt;br /&gt;
Projekt &amp;quot;&#039;&#039;&#039;iTanklad&#039;&#039;&#039;&amp;quot; (endine &amp;quot;Janu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soodsaimad bensiinihinnad sinu lähedal.&lt;br /&gt;
&lt;br /&gt;
iTanklad on veebiteenus, mis tagastab küsijale tema lähedal asuvate tanklate viimased kütusehinnad. &lt;br /&gt;
&lt;br /&gt;
Hindu on võimalik filtreerida kütuse tüübi ja / või asukoha ning kauguse järgi.&lt;br /&gt;
&lt;br /&gt;
http://iteam.codeplex.com/&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Indrek Ilves&lt;br /&gt;
*Maarek Varres&lt;br /&gt;
*Rene Vahtel&lt;br /&gt;
*Sigmar Muuga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Muudatused==&lt;br /&gt;
&lt;br /&gt;
====18.12.2010 - Terve tiim, &amp;quot;HackFest - Client MamboJambo&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Ehitasime veebikliendi, millel on kaks funktsiooni.&lt;br /&gt;
&lt;br /&gt;
1. Näitab igale kasutajale viimaseid hindu, ja laseb teostada kütusetüübi ja asukoha filtreeringut.&lt;br /&gt;
&lt;br /&gt;
2. Laseb autoriseeritud kasutajal sisestada uue hinna valitud tanklale ja valitud kütusetüübile&lt;br /&gt;
&lt;br /&gt;
Hindade vaatamine &amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:screen_hinnad.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hindade sisestamine &amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:screen_sisestamine.jpg]]&lt;br /&gt;
&lt;br /&gt;
====27.11.2010 - Terve tiim, &amp;quot;HackFest continues&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Saime tööle koordinaatide järgi lähimate hindade leidmise. Kasutasime algoritmi, mis on kirjas siin lehel: http://blog.wekeroad.com/2007/08/30/linq-and-geocoding/&lt;br /&gt;
&lt;br /&gt;
Hetkel saab pärida viimaseid hindu bensiini nime, koordinaatide ja kauguse järgi.&lt;br /&gt;
Suurimaks mureks on praegu süsteemi optimaalsus. Oleks vaja kuidagi linq-ga see algoritm implementeerida.&lt;br /&gt;
&lt;br /&gt;
[[File:Xmlsample1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Tänane hackfest kestis umbes neli tundi.&lt;br /&gt;
Linq keel on hetkel meile kõige segasem koht.&lt;br /&gt;
&lt;br /&gt;
Täpsem info [http://iteam.codeplex.com/wikipage?title=XML%20n%C3%A4idis siit].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====06.11.2010 - Terve tiim====&lt;br /&gt;
&lt;br /&gt;
Mõtlesime ringi teenuse sisu ja tegime andmemudeli. Teenuse sisuks on tanklakettide hinnad üle Eesti.&lt;br /&gt;
&lt;br /&gt;
Andmeid saab pärida läbi andmebaasi vaate. Meie jõud ei käinud veel Linq-st paraku üle(kasutab group-by-d ja alampäringuid).&lt;br /&gt;
&lt;br /&gt;
Andmemudelit näeb [http://iteam.codeplex.com/wikipage?title=Andmemudel siit].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====05.11.2010 - I vahefinish====&lt;br /&gt;
&lt;br /&gt;
Presenteerisime tehtud tööd:&lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.xml XML]&lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.xsd XSD] &lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.xsl XSL] &lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.html HTML].&lt;br /&gt;
&lt;br /&gt;
Tulemusi näeb [http://iteam.codeplex.com/wikipage?title=I%20vahefinish%20%28Januste%20teejuht%29 siit].&lt;br /&gt;
&lt;br /&gt;
[[File:HtmlV2limus.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====31.10.2010 - Sigmar====&lt;br /&gt;
Lisasin failid ära SVN-i. Saab paremini tiimitööd sünkida niimoodi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ideed:====&lt;br /&gt;
&lt;br /&gt;
Ideed: aadresside sektsioon peaks olema veidi universaalsem.&lt;br /&gt;
Võiks olla tag &amp;quot;&amp;lt;addresses&amp;gt;&amp;quot;, mille alla siis saab teha nii palju &amp;quot;&amp;lt;address&amp;gt;&amp;quot; sektsioone kui vaja.&lt;br /&gt;
Kui mitme aadressi tuge ei tee, siis vähemalt peaks eristama aadressiga seotud andmed ära eraldi &amp;lt;address&amp;gt; tag-i vahele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Algsed Rene tehtud XML failid:====&lt;br /&gt;
* [http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162178 XML]&lt;br /&gt;
* [http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162179 XSL]&lt;br /&gt;
* [http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162180 XSD]&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=File:Screen_sisestamine.jpg&amp;diff=21048</id>
		<title>File:Screen sisestamine.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=File:Screen_sisestamine.jpg&amp;diff=21048"/>
		<updated>2010-12-19T08:39:47Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: Sisestamise screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sisestamise screenshot&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22iTeam%22&amp;diff=21047</id>
		<title>Meeskond &quot;iTeam&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22iTeam%22&amp;diff=21047"/>
		<updated>2010-12-19T08:39:28Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Teema==&lt;br /&gt;
&lt;br /&gt;
Projekt &amp;quot;&#039;&#039;&#039;iTanklad&#039;&#039;&#039;&amp;quot; (endine &amp;quot;Janu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soodsaimad bensiinihinnad sinu lähedal.&lt;br /&gt;
&lt;br /&gt;
iTanklad on veebiteenus, mis tagastab küsijale tema lähedal asuvate tanklate viimased kütusehinnad. &lt;br /&gt;
&lt;br /&gt;
Hindu on võimalik filtreerida kütuse tüübi ja / või asukoha ning kauguse järgi.&lt;br /&gt;
&lt;br /&gt;
http://iteam.codeplex.com/&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Indrek Ilves&lt;br /&gt;
*Maarek Varres&lt;br /&gt;
*Rene Vahtel&lt;br /&gt;
*Sigmar Muuga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Muudatused==&lt;br /&gt;
&lt;br /&gt;
====18.12.2010 - Terve tiim, &amp;quot;HackFest - Client MamboJambo&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Ehitasime veebikliendi, millel on kaks funktsiooni.&lt;br /&gt;
1. Näitab igale kasutajale viimaseid hindu, ja laseb teostada kütusetüübi ja asukoha filtreeringut.&lt;br /&gt;
2. Laseb autoriseeritud kasutajal sisestada uue hinna valitud tanklale ja valitud kütusetüübile&lt;br /&gt;
[[File:screen_hinnad.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====27.11.2010 - Terve tiim, &amp;quot;HackFest continues&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Saime tööle koordinaatide järgi lähimate hindade leidmise. Kasutasime algoritmi, mis on kirjas siin lehel: http://blog.wekeroad.com/2007/08/30/linq-and-geocoding/&lt;br /&gt;
&lt;br /&gt;
Hetkel saab pärida viimaseid hindu bensiini nime, koordinaatide ja kauguse järgi.&lt;br /&gt;
Suurimaks mureks on praegu süsteemi optimaalsus. Oleks vaja kuidagi linq-ga see algoritm implementeerida.&lt;br /&gt;
&lt;br /&gt;
[[File:Xmlsample1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Tänane hackfest kestis umbes neli tundi.&lt;br /&gt;
Linq keel on hetkel meile kõige segasem koht.&lt;br /&gt;
&lt;br /&gt;
Täpsem info [http://iteam.codeplex.com/wikipage?title=XML%20n%C3%A4idis siit].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====06.11.2010 - Terve tiim====&lt;br /&gt;
&lt;br /&gt;
Mõtlesime ringi teenuse sisu ja tegime andmemudeli. Teenuse sisuks on tanklakettide hinnad üle Eesti.&lt;br /&gt;
&lt;br /&gt;
Andmeid saab pärida läbi andmebaasi vaate. Meie jõud ei käinud veel Linq-st paraku üle(kasutab group-by-d ja alampäringuid).&lt;br /&gt;
&lt;br /&gt;
Andmemudelit näeb [http://iteam.codeplex.com/wikipage?title=Andmemudel siit].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====05.11.2010 - I vahefinish====&lt;br /&gt;
&lt;br /&gt;
Presenteerisime tehtud tööd:&lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.xml XML]&lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.xsd XSD] &lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.xsl XSL] &lt;br /&gt;
* [http://ii.pri.ee/files/college/vr2/janu/iteam.html HTML].&lt;br /&gt;
&lt;br /&gt;
Tulemusi näeb [http://iteam.codeplex.com/wikipage?title=I%20vahefinish%20%28Januste%20teejuht%29 siit].&lt;br /&gt;
&lt;br /&gt;
[[File:HtmlV2limus.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====31.10.2010 - Sigmar====&lt;br /&gt;
Lisasin failid ära SVN-i. Saab paremini tiimitööd sünkida niimoodi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ideed:====&lt;br /&gt;
&lt;br /&gt;
Ideed: aadresside sektsioon peaks olema veidi universaalsem.&lt;br /&gt;
Võiks olla tag &amp;quot;&amp;lt;addresses&amp;gt;&amp;quot;, mille alla siis saab teha nii palju &amp;quot;&amp;lt;address&amp;gt;&amp;quot; sektsioone kui vaja.&lt;br /&gt;
Kui mitme aadressi tuge ei tee, siis vähemalt peaks eristama aadressiga seotud andmed ära eraldi &amp;lt;address&amp;gt; tag-i vahele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Algsed Rene tehtud XML failid:====&lt;br /&gt;
* [http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162178 XML]&lt;br /&gt;
* [http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162179 XSL]&lt;br /&gt;
* [http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162180 XSD]&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=File:Screen_hinnad.jpg&amp;diff=21046</id>
		<title>File:Screen hinnad.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=File:Screen_hinnad.jpg&amp;diff=21046"/>
		<updated>2010-12-19T08:38:12Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=VR_II:_projektide_meeskonnad_2010_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=18720</id>
		<title>VR II: projektide meeskonnad 2010 sügis, kaugõpe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=VR_II:_projektide_meeskonnad_2010_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=18720"/>
		<updated>2010-11-26T23:44:14Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Meeskond &amp;quot;iTeam&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=[[Meeskond &amp;quot;Khuul&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Näljaste teejuht - kohviku menüü&lt;br /&gt;
[ajaveebi aadress:]&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Jaan Igamees&lt;br /&gt;
*Ivan Ivanov&lt;br /&gt;
*John Smith&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;iTeam&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Januste teejuht - Soodsaimad diilid (aka õlled) sinu lähedal&lt;br /&gt;
&lt;br /&gt;
http://iteam.codeplex.com/&lt;br /&gt;
&lt;br /&gt;
===Liikmed===&lt;br /&gt;
*Indrek Ilves&lt;br /&gt;
*Maarek Varres&lt;br /&gt;
*Rene Vahtel&lt;br /&gt;
*Sigmar Muuga&lt;br /&gt;
&lt;br /&gt;
Project &amp;quot;Bensiin&amp;quot; (endine &amp;quot;Janu&amp;quot;)&lt;br /&gt;
Meeskond &amp;quot;iTeam&amp;quot;&lt;br /&gt;
Eesti Infotehnoloogia Kolledž &lt;br /&gt;
&lt;br /&gt;
Lähimad bensiinihinnad sinu lähedal.&lt;br /&gt;
&lt;br /&gt;
====27.11.2010 - Terve tiim, &amp;quot;HackFest continues&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Saime tööle koordinaatide järgi lähimate hindade leidmise. Kasutasime algoritmi, mis on kirjas siin lehel: http://blog.wekeroad.com/2007/08/30/linq-and-geocoding/&lt;br /&gt;
&lt;br /&gt;
Hetkel saab pärida viimaseid hindu bensiini nime, koordinaatide ja kauguse järgi.&lt;br /&gt;
Suurimaks mureks on praegu süsteemi optimaalsus. Oleks vaja kuidagi linq-ga see algoritm implementeerida.&lt;br /&gt;
&lt;br /&gt;
XML näidis: [[File:http://iteam.codeplex.com/wikipage?title=XML%20n%C3%A4idis]]&lt;br /&gt;
&lt;br /&gt;
Tänane hackfest kestis umbes neli tundi.&lt;br /&gt;
Linq keel on hetkel meile kõige segasem koht.&lt;br /&gt;
&lt;br /&gt;
====6.11.2010 - Terve tiim====&lt;br /&gt;
&lt;br /&gt;
Mõtlesime ringi teenuse sisu ja tegime andmemudeli. Teenuse sisuks on tanklakettide hinnad üle Eesti.&lt;br /&gt;
&lt;br /&gt;
Andmeid saab pärida läbi andmebaasi vaate. Meie jõud ei käinud veel Linq-st paraku üle(kasutab group-by-d ja alampäringuid).&lt;br /&gt;
&lt;br /&gt;
Andmemudelit näeb [siit url=&amp;quot;http://iteam.codeplex.com/wikipage?title=Andmemudel&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
====31.10.2010 - Sigmar====&lt;br /&gt;
Lisasin failid ära SVN-i. Saab paremini tiimitööd sünkida niimoodi.&lt;br /&gt;
&lt;br /&gt;
====Ideed:====&lt;br /&gt;
&lt;br /&gt;
Ideed: aadresside sektsioon peaks olema veidi universaalsem.&lt;br /&gt;
Võiks olla tag &amp;quot;&amp;lt;addresses&amp;gt;&amp;quot;, mille alla siis saab teha nii palju &amp;quot;&amp;lt;address&amp;gt;&amp;quot; sektsioone kui vaja.&lt;br /&gt;
Kui mitme aadressi tuge ei tee, siis vähemalt peaks eristama aadressiga seotud andmed ära eraldi &amp;lt;address&amp;gt; tag-i vahele.&lt;br /&gt;
&lt;br /&gt;
====Algsed Rene tehtud XML failid:====&lt;br /&gt;
* XML http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162178&lt;br /&gt;
* XSL http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162179&lt;br /&gt;
* XSD http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162180&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;Teine&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Ilmajaam&lt;br /&gt;
&lt;br /&gt;
http://vr2ilmajaam2010.codeplex.com&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Sander Pikhoff&lt;br /&gt;
*Ojar Kristal&lt;br /&gt;
*Peeter Lump&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;Meie menüü&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Kohviku menüü &lt;br /&gt;
&lt;br /&gt;
http://www.meiemenyy.blogspot.com/&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Elo Üle&lt;br /&gt;
*Vivika Veski&lt;br /&gt;
*Reet Raud&lt;br /&gt;
*Margus Neider&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;i-menu&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
menüü&lt;br /&gt;
[http://i-menu.blogspot.com/ i-menu blog]&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Mart Potter&lt;br /&gt;
*Margus Mihkelsoo&lt;br /&gt;
*Valter Kitsberg&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=VR_II:_projektide_meeskonnad_2010_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=18718</id>
		<title>VR II: projektide meeskonnad 2010 sügis, kaugõpe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=VR_II:_projektide_meeskonnad_2010_s%C3%BCgis,_kaug%C3%B5pe&amp;diff=18718"/>
		<updated>2010-11-26T23:34:00Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Meeskond &amp;quot;iTeam&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=[[Meeskond &amp;quot;Khuul&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Näljaste teejuht - kohviku menüü&lt;br /&gt;
[ajaveebi aadress:]&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Jaan Igamees&lt;br /&gt;
*Ivan Ivanov&lt;br /&gt;
*John Smith&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;iTeam&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Januste teejuht - Soodsaimad diilid (aka õlled) sinu lähedal&lt;br /&gt;
&lt;br /&gt;
http://iteam.codeplex.com/&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Indrek Ilves&lt;br /&gt;
*Maarek Varres&lt;br /&gt;
*Rene Vahtel&lt;br /&gt;
*Sigmar Muuga&lt;br /&gt;
&lt;br /&gt;
Project &amp;quot;Janu&amp;quot;&lt;br /&gt;
Meeskond &amp;quot;iTeam&amp;quot;&lt;br /&gt;
Eesti Infotehnoloogia Kolledž &lt;br /&gt;
&lt;br /&gt;
Lähimad bensiinihinnad sinu lähedal.&lt;br /&gt;
&lt;br /&gt;
==27.11.2010 - Terve tiim, HackFest continues==&lt;br /&gt;
&lt;br /&gt;
Saime tööle koordinaatide järgi lähimate hindade leidmise. Kasutasime algoritmi, mis on kirjas siin lehel: http://blog.wekeroad.com/2007/08/30/linq-and-geocoding/&lt;br /&gt;
&lt;br /&gt;
==6.11.2010 - Terve tiim==&lt;br /&gt;
&lt;br /&gt;
Mõtlesime ringi teenuse sisu ja tegime andmemudeli. Teenuse sisuks on tanklakettide hinnad üle Eesti.&lt;br /&gt;
&lt;br /&gt;
Andmemudelit näeb [siit url=&amp;quot;http://iteam.codeplex.com/wikipage?title=Andmemudel&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
==31.10.2010 - Sigmar==&lt;br /&gt;
Lisasin failid ära SVN-i. Saab paremini tiimitööd sünkida niimoodi.&lt;br /&gt;
&lt;br /&gt;
==Ideed:==&lt;br /&gt;
&lt;br /&gt;
Ideed: aadresside sektsioon peaks olema veidi universaalsem.&lt;br /&gt;
Võiks olla tag &amp;quot;&amp;lt;addresses&amp;gt;&amp;quot;, mille alla siis saab teha nii palju &amp;quot;&amp;lt;address&amp;gt;&amp;quot; sektsioone kui vaja.&lt;br /&gt;
Kui mitme aadressi tuge ei tee, siis vähemalt peaks eristama aadressiga seotud andmed ära eraldi &amp;lt;address&amp;gt; tag-i vahele.&lt;br /&gt;
&lt;br /&gt;
==Algsed Rene tehtud XML failid:==&lt;br /&gt;
XML http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162178&lt;br /&gt;
XSL http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162179&lt;br /&gt;
XSD http://iteam.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=162180&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;Teine&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Ilmajaam&lt;br /&gt;
&lt;br /&gt;
http://vr2ilmajaam2010.codeplex.com&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Sander Pikhoff&lt;br /&gt;
*Ojar Kristal&lt;br /&gt;
*Peeter Lump&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;Meie menüü&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
Kohviku menüü &lt;br /&gt;
&lt;br /&gt;
http://www.meiemenyy.blogspot.com/&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Elo Üle&lt;br /&gt;
*Vivika Veski&lt;br /&gt;
*Reet Raud&lt;br /&gt;
*Margus Neider&lt;br /&gt;
&lt;br /&gt;
=[[Meeskond &amp;quot;i-menu&amp;quot;]]=&lt;br /&gt;
==Teema==&lt;br /&gt;
menüü&lt;br /&gt;
[http://i-menu.blogspot.com/ i-menu blog]&lt;br /&gt;
&lt;br /&gt;
==Liikmed==&lt;br /&gt;
*Mart Potter&lt;br /&gt;
*Margus Mihkelsoo&lt;br /&gt;
*Valter Kitsberg&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=16083</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=16083"/>
		<updated>2010-10-30T11:30:50Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
==Chris Sinihelm AK41==&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 samal päeval) 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;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=16082</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=16082"/>
		<updated>2010-10-30T11:29:52Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
==Chris Sinihelm AK41==&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(lävend võiks näiteks olla 10 ebaõnnestunud katset samal päeval) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=16081</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=16081"/>
		<updated>2010-10-30T11:29:31Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: /* Sigmar Muuga DK31 */&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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
==Chris Sinihelm AK41==&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 õnnestunud IP aadressid(lävend võiks näiteks olla 10 ebaõnnestunud katset samal päeval) ning saadab need kas e-mailile või lisab tulemüüri reeglitesse(IPTABLES näiteks).&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Skriptimiskeeled_aine_aruanded_2010_s%C3%BCgis&amp;diff=16080</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=16080"/>
		<updated>2010-10-30T11:27:20Z</updated>

		<summary type="html">&lt;p&gt;Smuuga: &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;
Skript, mis kontrollib võrguühenduse olemasolu ning selle puudusel diagnoosib häda.&lt;br /&gt;
[[V6rgudiagnoosiskript]]&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;
*[[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;
&lt;br /&gt;
==Kristjan Karmo AK41==&lt;br /&gt;
==Chris Sinihelm AK41==&lt;br /&gt;
&lt;br /&gt;
==Nadežda Furs A31==&lt;br /&gt;
&lt;br /&gt;
==Sigmar Muuga DK31==&lt;/div&gt;</summary>
		<author><name>Smuuga</name></author>
	</entry>
</feed>