User:Metamm

From ICO wiki
Jump to navigationJump to search

BASH - Quest 3

#!/bin/bash
#Autor: Meelis Tamm, A21, metamm@itcollege.ee
#Skript eemaldab vanad kerneli kujutisfailid, v.a. kaks viimast versiooni
#Lisaks kujutisfailidele, eemaldatakse ka vastavad kerneli versioonid grub nimekirjast (seda teed paketihaldur automaagiliselt)
 
PAKETIHALDUR=$1
 
#Kontrollime, kas kasutaja omab juurkasutaja õigusi 
if [ $UID -ne 0 ]; then
 
	echo "Käivita skript $(basename $0) juurkasutaja õigustes"
	exit 1
 
#Kontrollime, kas skript käivitati õige arvu argumentidega 
elif [ $# -ne 1  ]; then
 
	echo -e "Käivita skript ./$(basename $0) <paketihaldur> \n[N: rpm või dpkg]"
	exit 1
	
#Kontrollime, kas kasutaja tahab kasutada rpm eemaldust 
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "rpm"  ]; then
 
 	#Kontrollime, kas RPM käsk on shellile teada
 	#type rpm > /dev/null 2>&1 || exit 1
 	
 	command -V rpm > /dev/null 2>&1
	if [ $? -eq 1 ]; then 
		echo "rpm käsk ei ole shellile teada, proovige dpkg-ga. Väljun"
		exit 1
	#Kontrollime, kas kerneleid on juba 2 või vähem
	elif [ $(rpm -q kernel | wc -l) -le 2 ]; then
		echo "Olemasolevaid kerneli versioone on juba 2 või vähem"
		exit 1
		
	else
		echo "Kasutan rpm eemaldust"
		RPM_KERNEL_LIST=$(rpm -q kernel)
		NR_TO_REMOVE=$(echo "$(rpm -q kernel | wc -l) - 2" | bc -l)
		
		for i in $( echo "$RPM_KERNEL_LIST" | head -$(echo $NR_TO_REMOVE) ); do
			rpm -e $i
		done

	fi
 
#Kontrollime, kas kasutaja tahab kasutada dpkg eemaldust 
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "dpkg"  ]; then
 
	#Kontrollime, kas DPKG käsk on shellile teada
	#type dpkg > /dev/null 2>&1 || exit 1
	
	command -V dpkg > /dev/null 2>&1
	if [ $? -eq 1 ]; then 
		echo "dpkg käsk ei ole shellile teada, proovige rpm-iga. Väljun"
		exit 1
		
	#Kontrollime, kas kerneleid on juba 2 või vähem	
	elif [ $(dpkg --list | grep linux-image | awk '{print $3}' | cut -d"." -f4 --complement | wc -l) -le 2 ]; then
		echo "Olemasolevaid kerneli versioone on juba 2 või vähem"
		exit 1	
	
	else
		echo "Kasutan dpkg eemaldust"
		DPKG_KERNEL_LIST=$(dpkg --list | grep linux-image | awk '{print $3}' | cut -d"." -f4 --complement)
		NR_TO_REMOVE=$(echo "$(echo "$DPKG_KERNEL_LIST" | wc -l) - 2" | bc -l)
				
		for i in $( echo "$DPKG_KERNEL_LIST" | head -$(echo $NR_TO_REMOVE) ); do
			apt-get remove linux-image-$i-generic -y
		done
	fi
 
#Anname teada, et kasutaja sisestatud argument ei sobi selle skriptiga 
else
	echo "$PAKETIHALDUR <--Selline paketihaldur ei sobi. Ainult dpkg või rpm"
	exit 1
 
fi
 
#Väljastame, mida skript tegi 
echo "Skript kustutas kõik vanad kerneli versioonid peale 2 viimase"

POWERSHELL - kodutöö

#Koostaja: Meelis Tamm, A21, metamm@itcollege.ee
#Skript loob taustapildi, millele on kirjutatud arvuti nimi, kasutaja, kes on sisse logitud ja aruvti IP aadress
 
#faili asukoht, kuhu loodav pilt salvestatakse
$filename =  $ENV:USERPROFILE + "\taust.bmp"

#Eemaldame eelmise pildi, kui see on olemas
if (test-path $filename) {Remove-Item "$filename"}
 
#Funktsioon, mis määrab sisselogitud kasutaja desktopi registrivõtmes taustapildi asukohaks skripti loodud pildi
Function Set-WallPaper($Value)
{
 Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value "$value"
 rundll32.exe user32.dll, UpdatePerUserSystemParameters
}
 
# Arvuti nimi
$PC=Get-Content Env:\COMPUTERNAME
 
# Kasutajanimi
$USER=Get-Content Env:\USERNAME
 
# IP Aadress
$IP=((ipconfig | findstr [0-9].\.)[0]).Split()[-1]
 
Add-Type -AssemblyName System.Drawing
 
# Tekst, mida kirjutatakse pildile (mitu rida)
$tekst = @"
Masin: $PC
Kasutaja: $USER
IP: $IP
"@

# Ekraani resolutsiooni andmete muutujatesse korjamine (Virtuaalmasinas ei tööta)
Get-WmiObject -Query "select * from Win32_DesktopMonitor" | % {$Width=$_.ScreenWidth}
Get-WmiObject -Query "select * from Win32_DesktopMonitor" | % {$Height=$_.ScreenHeight}

# Loome uue bitmapi, viimased kaks nr määravad reso (Virtuaalmasina puhul)
#$bmp = new-object System.Drawing.Bitmap 1024,780

# Loome uue bitmapi, viimased kaks nr määravad reso
$bmp = new-object System.Drawing.Bitmap $Width,$Height
 
# Valime kirjastiili, millega teks kirjutatakse
$font = new-object System.Drawing.Font Consolas,24
 
# Määrame taustapintsli värvi
$brushBg = [System.Drawing.Brushes]::Red
 
# Määrame kirjutamis pintsli värvi
$brushFg = [System.Drawing.Brushes]::White
 
$graphics = [System.Drawing.Graphics]::FromImage($bmp)
$graphics.FillRectangle($brushBg,0,0,$bmp.Width,$bmp.Height)
 
# Kirjutame teksti pildile
$graphics.DrawString($tekst,$font,$brushFg,500,360)
 
$graphics.Dispose()
 
# Salvestame pildi
$bmp.Save($filename)
 
# Uue tausta määramine
Set-WallPaper -value $filename

PYTHON - kodutöö

#!/usr/bin/python
#-*- coding: utf-8-*
#Autor: Meelis Tamm, A21
#Skript kogub kasutaja kodukaustast kokku kõik .html lõpuga failid ühte html faili linkide näol

import os
from os.path import join

#Avame html faili, kuhu linke koguma hakkame

fh = open ('htmlkogu.html', 'w')

#Loome standard HTML faili

fh.write('<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n')
fh.write("<html>\n")
fh.write("<head>\n")
fh.write("<title>Lingid html failidele</title>\n")
fh.write('<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />\n')
fh.write("</head>\n")
fh.write("<body>\n")

#Käime läbi kõik kodukataloogis (ja alamates kaustades) olevad failid

for root, dirs, files in os.walk('/home/'):
	for name in files:
		filename = os.path.join(root, name)
                #Kui leiame html faili, siis avame selle
		if filename.endswith('.html'):
			fail = open (filename)
			for rida in fail.readlines():
                                #Võtame avatud html failist tiitli ja lisame selle lingina meie kogumik html faili
				if "<title>" in rida:
					tiitel=rida.split('title')[1].split('>')[1].split('<')[0]
					fh.write('<a href="%s">%s</a><br />\n' %(filename, tiitel))

#Sulgeme avatud failid ja tag-id
fail.close()
fh.write("</body>\n")
fh.write("</html>")
fh.close()