Category:Skriptimiskeeled (arhiiv): Difference between revisions
Line 103: | Line 103: | ||
=Python= | =Python= | ||
==Kodutöö python skript== | |||
Tähtaeg 20.01.2012 (Kaugõpe) | |||
Luua isikukoodi parser ja õigsuse kontrollija. | Luua isikukoodi parser ja õigsuse kontrollija. | ||
Revision as of 17:00, 12 January 2012
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 ja retsensioonid (50% ulatuses) ning osaarvestustööd (50% ulatuses). Osaarvestustööd koosnevad praktilistest arvuti abil lahendatavatest skriptimisülesannetest.
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 ning samuti tuleb retsenseerida teise õppija koostatud aruannet. Iseseisva tööna tuleb teha kokku kolm aruannet ja kolm retsensiooni.
Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused
Skriptimiskeeled aine muudatuste ideed
Bash
Enesetest aine bash osa eelduse kontrolliks
Materjal, mille läbitöötamine asendab BASH loengutes kaasatöötamist
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 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
Kui soovite Ubuntu töölaua vers. ise paigaldada, siis järgige järgmist juhendit.
cd "/My Virtual Machines"
wget ftp://ftp.estpak.ee/pub/ubuntu-releases/10.10/ubuntu-10.10-desktop-amd64.iso
Tunnis kasutatud virtuaalmasina saab endale alla laadida. (NB see on päris suur fail)
cd "/My Virtual Machines"
wget http://enos.itcollege.ee/~mernits/skriptimine/skriptimine.tar.gz
tar zxf skriptimine.tar.gz
Bash quests - leht neile, kellel pole bash kodutöö teema ideed...
Skriptimiskeeled aine aruanded 2010 sügis
Teemad
Python
Kodutöö python skript
Tähtaeg 20.01.2012 (Kaugõpe)
Luua isikukoodi parser ja õigsuse kontrollija.
Sisendiks fail kus igal real on isikukood, mis võib olla õige või vale. Väljundiks on fail kus on õiged isikukoodid kus kontrollsumma klapib ning kuupäev on korrektne (aastas 12 kuud ning iga kuu päevade arv sobiv). Sisendfail enesekontrolliks: http://lauri.vosandi.eu/python/isikukoodid.txt
NB! Kuupäeva õigsuse kontrollimiseks kasutage datetime.strptime funktsiooni ja uuesti vormindamiseks datetime.strftime funktsiooni
python isikukoodid.py isikukoodid.txt
Eeldatav väljund:
61206116170 - 11.06.2012 - naine 40511309870 - 30.11.1905 - naine 41407165380 - 16.07.1914 - naine 63511033026 - 03.11.2035 - naine 44408261855 - 26.08.1944 - naine 36001157802 - 15.01.1960 - mees 68905216902 - 21.05.2089 - naine 44702094652 - 09.02.1947 - naine 63812277449 - 27.12.2038 - naine 41207203213 - 20.07.1912 - naine 68708158219 - 15.08.2087 - naine 59803250119 - 25.03.2098 - mees 53912086035 - 08.12.2039 - mees 51211188093 - 18.11.2012 - mees 43805027379 - 02.05.1938 - naine 63206180726 - 18.06.2032 - naine 51501095401 - 09.01.2015 - mees 41609258538 - 25.09.1916 - naine 60306250756 - 25.06.2003 - naine 61901193165 - 19.01.2019 - naine 43107188423 - 18.07.1931 - naine 48210160415 - 16.10.1982 - naine 48910144868 - 14.10.1989 - naine 37605156061 - 15.05.1976 - mees 30907090640 - 09.07.1909 - mees 53907089733 - 08.07.2039 - mees
Programm peab sisaldama infot skripti autori kohta ning valede parameetrite korral väljastama programmi kasutusinfo
PowerShell
Skriptimiskeeled: powershelli kodutööd 2011, sügis, kaugõpe
Skriptimiskeeled: powershelli kodutööd 2011, kevad, päevaõpe
PowerShelli näidisteemad kodutöödeks 2010, sügis, kaugõpe
PowerShell scriptimiskeele tutvustus, peamised kasutatavad käsud
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/
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
This category currently contains no pages or media.