User:Metamm: Difference between revisions
From ICO wiki
Jump to navigationJump to search
No edit summary |
|||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Quest 3 | =BASH - Quest 3= | ||
<source lang="bash"> | <source lang="bash"> | ||
Line 10: | Line 10: | ||
PAKETIHALDUR=$1 | PAKETIHALDUR=$1 | ||
#Kontrollime, kas kasutaja omab juurkasutaja õigusi | #Kontrollime, kas kasutaja omab juurkasutaja õigusi | ||
if [ $UID -ne 0 ]; then | if [ $UID -ne 0 ]; then | ||
Line 17: | Line 16: | ||
exit 1 | exit 1 | ||
#Kontrollime, kas skript käivitati õige arvu argumentidega | #Kontrollime, kas skript käivitati õige arvu argumentidega | ||
elif [ $# -ne 1 ]; then | elif [ $# -ne 1 ]; then | ||
echo -e "Käivita skript ./$(basename $0) <paketihaldur> \n[N: rpm või dpkg]" | echo -e "Käivita skript ./$(basename $0) <paketihaldur> \n[N: rpm või dpkg]" | ||
exit 1 | exit 1 | ||
#Kontrollime, kas kasutaja tahab kasutada rpm eemaldust | |||
elif [ $(echo $PAKETIHALDUR | tr [:upper:] [:lower:]) = "rpm" ]; then | |||
#Kontrollime, kas | #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 | 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 | else | ||
echo "$PAKETIHALDUR <--Selline paketihaldur ei sobi. Ainult dpkg või rpm" | echo "$PAKETIHALDUR <--Selline paketihaldur ei sobi. Ainult dpkg või rpm" | ||
Line 51: | Line 81: | ||
fi | fi | ||
#Väljastame, mida skript tegi | #Väljastame, mida skript tegi | ||
echo "Skript kustutas kõik vanad kerneli versioonid peale 2 viimase" | |||
</source> | |||
=POWERSHELL - kodutöö= | |||
<source lang="powershell"> | |||
#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 | |||
</source> | |||
=PYTHON - kodutöö= | |||
<source lang="python"> | |||
#!/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() | |||
</source> | </source> |
Latest revision as of 10:10, 30 May 2011
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()