Category:Skriptimiskeeled (arhiiv): Difference between revisions
Line 22: | Line 22: | ||
==Loengusalvestused 2013 sügis kaugõppele= | ==Loengusalvestused 2013 sügis kaugõppele== | ||
http://echo360.e-ope.ee/ess/portal/section/2e8a9743-7b1f-43e3-85e0-6b52cbd8a94f | http://echo360.e-ope.ee/ess/portal/section/2e8a9743-7b1f-43e3-85e0-6b52cbd8a94f |
Revision as of 12:26, 18 October 2013
Skrpitimiskeeled ainekaart
Eesmärk
Õppeaine eesmärgiks on tutvustada õppijatele skriptimiskeelte vajalikkust korduvate haldustegevuste automatiseerimisel ning arendada õppijate oskuseid serverite ja tööjaamade haldamiseks.
Lühitutvustus
Õppeaines käsitletakse skriptimiskeeli kui ühte töövahendit, mille abil on võimalik süsteemide haldamiseks vajalikke tegevusi efektiivselt ning otstarbekalt sooritada ja automatiseerida. Pikemalt tutvustatakse bash kooriku programmeerimisvõimalusi, skriptimiskeelte pyhton, ruby ja vbscript kasutamist ning Windows-tööjaamade ja –serverite haldamisel kasutatavat skriptimiskeskkonda PowerShell. Õppija omandab aine läbimise käigus enamlevinud srkiptimisvahendite esmase kasutusoskuse ja ülevaate tänapäeval kasutatavatest skriptimisvahenditest.
Õpiväljundid
- Õppija mõistab skriptimise kui töövõtte vajadust ning kasutusvaldkondi.
- Õppija teab ja tunneb enimkasutatavaid skriptimiskeeli ja nende kasutamisvõimalusi.
- Õppija oskab kasutada skriptimiskeeli lihtsamate haldustegevuste automatiseerimiseks.
- Õppija oskab koostada keerulisemaid skripte kasutades selleks erialast kirjandust ja sotsiaalseid keskkondi
Hinde kujunemine
Arvestuse tulemus kujuneb semestri jooksul tehtud töö baasil. Hindamisele kuuluvad iseseisva töö aruanded ehk skriptid koos dokumentatsiooniga (50% ulatuses) ning osaarvestustööd (50% ulatuses). Osaarvestustööd koosnevad praktilistest arvuti abil lahendatavatest skriptimisülesannetest. Arvestustööd saab teha semestri jooksul või arvestuse päeval.
Iseseisev töö koosneb kolmest hinnatavast plokist (Powershell, bash shell, Ruby või python). Igas plokis tuleb õppijal koostada aruanne, mis koosneb juhendist ja enda loodud skriptist. Iseseisva tööna tuleb teha kokku kolm aruannet.
Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused
Skriptimiskeeled aine muudatuste ideed
Loengusalvestused 2013 sügis kaugõppele
http://echo360.e-ope.ee/ess/portal/section/2e8a9743-7b1f-43e3-85e0-6b52cbd8a94f
Bash
Arvestus 09.aprill rühm A22
Teha skript, mis loeb käsurealt 1..2 argumenti (kaks failinime) Kui argumente pole 1..2 väljastab veakoodi 1 (1p) Skript kontrollib, kas argumentidena antud failid on olemas. (kui pole, siis tagastab veakoodi 2 (2p) Kui failid on olemas, siis väljastab nende nimed ja õigused (-rwxw---- jne) (3p) Näiteks: examples.desktop -rw-r--r-- failid-2013-02-12.tar.gz -rw-r--r-- Skript loob varukoopiad failidest, pakkides need kokku üheks tar.gz lõpuga failiks, mille nimi on varukoopia-DATE.tar.gz DATE on tänane kuupäev (5p) Muutke varukoopia omanik ja grupp root kasutajaks. (2p) Muutke failõiguseid, et ainult omanik saab kõike teha (1p) Skript teavitab, kui töö õnnestus ja tagastab vastusekoodi 0 (1p)
Enesetest aine bash osa eelduse kontrolliks
Materjal, mille läbitöötamine asendab BASH loengutes kaasatöötamist
Esimene bash loeng - sissejuhatus päevaõppele 05.02.2013
Tunnis lahendatud näited leiab siit - Bash näited 2013
Loengute ja praktikumide salvestused
Bash arvestuse saamiseks tuleb teha kodutöö ja lahendada tunnis (või kodus) kaks ülesannet (veebikodu ja failiteenus).
Tunnis antud ülesanded
http://enos.itcollege.ee/~mernits/skriptimine/robot.itcollege.ee-access.log.zip
Ülesanne - failiteenus
Looge skript, mis jagaks etteantud grupile uue kausta
jaga KAUST GRUPP <JAGATUD KAUST>
Skript teeb järgnevat
- paigaldab samba (see osa pole kohustuslik)
- loob kausta KAUST (kui vaja)
- loob grupi GRUPP (kui vaja)
- lisab grupile sobivad read smb.conf faili ja teeb failiserveri teenusele reload'i
- abimaterjal: Failiserveri labor v.2
Kes jõuab teeb enne konfiguratsioonist koopia ja teeb muudatused koopiasse. Koopiat testitakse testparm korraldusega ja kopeeritakse alles seejäral fail üle
Ülesanne - veebihosting/veebiteenus
Looge skript, mis looks uue veebkodu Kasutaja sisestab:
loo-kodu www.minuveebisait.ee
- Skript paigaldab apache2 serveri, kui see puudub
- Loob nimelahenduse (lihtsalt /etc/hosts failis)
- Kopeerib vaikimisi veebisaidi ja modifitseerib index.html faili sisu vastavalt loodavale lehele
- Abimaterjal Virtualhost apache2 näitel Veebiserveri labor v.2
The only way to really learn scripting is to write scripts
Praktika
- Esimeses praktikumis installeeritakse Ubuntu töölaud ja luuakse lihtsamaid skripte
cd "/Virtual Machines/$USER" || exit 1
wget http://elab.itcollege.ee:8000/infra_klient.ova
Bash quests 2013 - leht neile, kellel pole bash kodutöö teema ideed...
Skriptimiskeeled aine aruanded 2010 sügis
Teemad
Python
#!/usr/bin/python
# -*- coding: utf-8 -*-
import urllib
from PIL import Image
import string
VIIRUS='uggc://vztf.kxpq.pbz/pbzvpf/clguba.cat'
#see funktsioon jäta viimaseks!
def make_rot_n(n):
lc = string.lowercase
trans = string.maketrans(lc, lc[n:] + lc[:n])
return lambda s: string.translate(s, trans)
rot13 = make_rot_n(13)
fh = urllib.urlopen(rot13(VIIRUS))
localFile = open('v.png', 'w')
localFile.write(fh.read())
localFile.close()
f = Image.open("v.png").show()
Päevaõppe loengu salvestus 19.märts.2013
Lisamaterjal (algajad saavad siit abi isegi siis, kui programmeerimise algõpe jäi puudulikuks) http://learnpythonthehardway.org/book/
Kodutöö või arvestuse python skript (neile, kes esitavad selle kuni 28.mai.2013 enne arvestuse algust)
Looge skript, mis teeb päringuid esimese argumendina antud veebilehe pihta ja vahetab iga päringuga browser stringi, millede nimekiri on ette antud failis data.txt
Failinimi olgu kujul p2ring.eesnimi.perenimi.py, ehk kirjutad sinna oma nime
Näiteks: ./p2ring.margus.ernits.py http://wiki.itcollege.ee/
ja data näitesisu:
Mozilla (libwhisker/2.4) Mozilla (Mozilla@somewhere.com) Mozilla 4.0(compatible; BotSeer/1.0; +http://botseer.ist.psu.edu) Mozilla/1.1 (compatible; MSPIE 2.0; Windows CE) Mozilla/1.10 [en] (Compatible; RISC OS 3.70; Oregano 1.10) Mozilla/1.22 (compatible; MSIE 2.0d; Windows NT) Mozilla/1.22 (compatible; MSIE 5.01; PalmOS 3.0) Mozilla/2.0 Mozilla/2.0 (compatible; AOL 3.0; Mac_PowerPC)
Veatöötlis: Kui faili ei ole või seda ei saa avada, siis skripti väljumiskood (exit code) on 1.
Hindid: urllib2 urllib changing user agent
Skript saatke õppejõu (Margus Ernits) e-posti aadressile margus.ernitsÄTTitcollege.ee.
NB: Sama ülesannet võib esitada bash arvestustööna, kui kodutöö on olemas.
PowerShell
Skriptimiskeeled: powershelli kodutööd 2012, kevad, päevaõpe
- PowerShelli näidisteemad kodutöödeks 2012, kevad, päevaõpeõpe
- PowerShelli näidisteemad kodutöödeks 2010, sügis, kaugõpe
PowerShelli arvestusülesanne 2011, sügis, kaugõpe
PowerShell scriptimiskeele tutvustus, peamised kasutatavad käsud
- Õpiobjekt: PowerShell skriptimiskeele ja -keskkonna tutvustus http://enos.itcollege.ee/~htahis/tmp/Powershell1/
Tutvustus
- Windows PowerShell Owner’s Manual http://technet.microsoft.com/et-ee/library/ee221100(en-us).aspx
- Introducing Windows PowerShell http://msdn.microsoft.com/en-us/library/ms714418(v=VS.85).aspx
- Scripting with Windows PowerShell http://technet.microsoft.com/en-us/scriptcenter/powershell.aspx
- ABIKS: PowerGUI - http://www.powergui.org/ Kena graafiline liides ja palju valmistehtud skripte
PowerShelli paigaldus
- Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0, and BITS 4.0) http://support.microsoft.com/kb/968929
PowerShelli seaded
- Using the Set-ExecutionPolicy Cmdlet http://technet.microsoft.com/et-ee/library/ee176961(en-us).aspx
- Signing PowerShell Scripts http://www.hanselman.com/blog/SigningPowerShellScripts.aspx
- Signing PowerShell Scripts – Automatically http://huddledmasses.org/signing-powershell-scripts-automatically/
- Obtaining a Code Signing Certificate and Signing PowerShell Scripts http://www.mikepfeiffer.net/2010/02/obtaining-a-code-signing-certificate-and-signing-powershell-scripts/
- Windows PowerShell Shortcut Keys http://technet.microsoft.com/et-ee/library/ee176868(en-us).aspx
- Windows PowerShell Profile http://technet.microsoft.com/et-ee/library/ee692764(en-us).aspx
- Customizing the Console http://technet.microsoft.com/et-ee/library/ee156814(en-us).aspx
- Käsk, millega loengus allkirjanõude väljalülitasime
- Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy unrestricted
Praktika
- Loo alias Get-Process cmdleti jaoks: prots
- Loo funktsioon näitamaks kõiki printereid nimega printerid
- Ekspordi alias
- Salvesta loodud funktsioon profiili
Näited
Esimese loengu näited: PowerShell
Esimese loengu näited: PowerShell (2011, päevaõpe)
PowerShell skriptimiskeskkonna alus- ja põhimõisted
Sissejuhatus
- Getting Started With Windows PowerShell http://technet.microsoft.com/et-ee/library/ee177003(en-us).aspx#ECAA
- Piping and the Pipeline in Windows PowerShell http://technet.microsoft.com/et-ee/library/ee176927(en-us).aspx
Muutujad ja massiivid
- Set-Variable http://technet.microsoft.com/en-us/library/dd347562.aspx
- Variables, Arrays, and Hash Tables http://www.powershellpro.com/powershell-tutorial-introduction/variables-arrays-hashes/
If, kordused ja konveierid
- Conditional Logic Using Loops http://www.powershellpro.com/powershell-tutorial-introduction/logic-using-loops/
- Piping and the Pipeline in Windows PowerShell http://technet.microsoft.com/et-ee/library/ee176927(en-us).aspx
- PowerShell Parameters, Objects, and Formatting http://www.powershellpro.com/powershell-tutorial-introduction/powershell-parameters-objects-and-formatting/
Tunni näited
Tunninäide: 7.02.2012, Powershell
Praktika
- Võta system EventLog'ist 25 viimast sündmust ja ekspordi need CSV faili
- Leia application EventLog'ist enim kirjeid loonud rakendus
- Käivita Notepad ning leia seejärel vastav protsess ja tee kindlaks PID
- Leia enim mäluruumi kasutav protsess ja sulge see
PowerShell skriptimiskeskkonnas WMI objektide kasutamine
Sissejuhatus
- Using the Get-WMiObject Cmdlet http://technet.microsoft.com/en-us/library/ee176860.aspx
- Connecting to WMI on a Remote Computer by Using Windows PowerShell http://msdn.microsoft.com/en-us/library/ee309377(VS.85).aspx
- Getting WMI Objects (Get-WmiObject) http://technet.microsoft.com/en-us/library/dd315379.aspx
Näited
- Kolmanda praktikumi naide Anna-Printerid.ps1
- Powershell script to retrieve the OperatingSystem and Service Pack http://ss64.com/ps/get-wmiobject-win32.html
- Use PowerShell to see whats eating your CPU http://www.rn.co.za/html/?tag=get-wmiobject
PowerShell skriptimiskeskkonnas IIS veebiserveri haldamine
Praktika
- Koosta skript, mis:
- paigaldaks IIS veebiserveri
- Kustutaks Default Web Site
- Looks uue veebilehe, mille füüsiline asukoht oleks C:\www
- Kontrolliks ka eelnevalt kataloogi olemasolu ning vajadusel looks selle
- Koosta skrpit, mis genereeriks veebilehe, mis sisaldaks töötavate protsesside loetelu ja nende ressursikasutusesinfot ja viimast viit kirjet system EventLog'ist
- See skript peab väskendama infot viieminutilise intervalliga
- Meekondade loodud skriptid:
Kaughaldus PowerShelli abil
Teooria
- Running Remote Commands http://technet.microsoft.com/en-us/library/dd819505.aspx
- PowerShell V2 Remoting - a first glimpse http://powershell.com/cs/blogs/tobias/archive/2008/11/06/powershell-v2-remoting-overview.aspx
Praktika
Arvestus 2012 mai
PowerShell
Failid http://enos.itcollege.ee/~htahis/PowerShell/Arvestus1/
Loo skriptiga kaustad kujul
C:\Failid ->[Osakond] ->[EesNimiPerenimi] ->[EesNimiPerenimi] ->[EesNimiPerenimi] ->... ->[Osakond] ->[EesNimiPerenimi] ->[EesNimiPerenimi] ->[EesNimiPerenimi] ->...
Näiteks: C:\Failid\Myyk\JaanIgamees
C:\Failid\Myyk\MatiKalkun
C:\Failid\Tootmine\JaanKytt
C:\Failid\Myyk\MariMaasikas
jne
Kasutajad/osakonnad leiad kasutajad.xlsx, sellesse faili võib lisada päised ja konverteerida selle eelnevalt CSV või XML vormingusse
NB! Ees- ja perenimedest peab eemaldama täpitähed/erisümbolid!
Lahendus saada aadressile heiki.tahis@eesti.ee - Subjekt: [skriptimine]
Arvestus kaugõppele 2012 jaanuar
Python
Kasuta oma kodutööd ja töötle isikukoode, mida loed järgmisest failist http://lauri.vosandi.eu/python/isikukoodid.txt
Kirjuta skript, mis leiab kõige vanema inimese ja kõige noorema inimese. NB: See isikukood peab olema korrektne
Lahendus saada aadressile margus.ernits@itcollege.ee - Subjekt: [skriptimine]
PowerShell
Loo skript, mis kopeerib etteantud lähtekausta sisu rekrusiivselt etteantud sihtkausta.
- Kui sihtkaust puudub see luuakse.
- Kui kaust on olemas ja seal on faile ning kaustu, siis kirjutatakse üle ainult need failid, mille suurus sihtkaustas on erinev lähtekaustas olevast faili suurusest ning kui alamkaustad puuduvad, need luuakse.
- Lisaks on skriptil parameeter -Kustuta, mille kasutamisel kustutatakse sihtkaustast failid, mida lähtekaustas ei ole.
Lahendus saada aadressile heiki.tahis@eesti.ee - Subjekt: [skriptimine]
This category currently contains no pages or media.