Category:Skriptimiskeeled (arhiiv)

From ICO wiki
Revision as of 22:50, 1 February 2015 by Mernits (talk | contribs)
Jump to navigationJump to search

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, skriptimiskeelt pyhton ja soovi koraal rubyt või PowerShelli. Õ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 (30% ulatuses) ning praktilised kontrolltööd (40% ulatuses). Kontrolltööd koosnevad praktilistest arvuti abil lahendatavatest skriptimisülesannetest. Arvestustööd saab teha semestri jooksul (kui kodutööd/kontrolltööd on tehtud) või arvestuse päeval.

Iseseisev töö koosneb kahest hinnatavast plokist:

  • Bash
  • Python (mille võib soovi korral asendada Ruby, Perli või PowerShelliga)

Igas plokis tuleb õppijal koostada aruanne, mis koosneb juhendist ja enda loodud skriptist. Iseseisva tööna tuleb teha kokku kaks aruannet.

Üldist

Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused

Skriptimiskeeled aine muudatuste ideed

Eelmiste voorude tagasiside

File:Kaugõppe tagasiside koos kommentaaridega 2013 Sügis.pdf

Loengusalvestused 2014 sügis kaugõppele

Üldine link: https://echo360.e-ope.ee/ess/portal/section/a7bec2d8-1c58-4228-81f0-38cc032a0d21


Kaugõpe 2014 sügis 27. september 2014.a. Sissejuhatus + Bash algus

Kaugõpe 2014 sügis 28. september 2014.a. Bash

Kaugõpe 2014-10-17 10:00 Bash

Kaugõpe 2014-10-17 12:00 Bash

Kaugõpe 2014-10-18 16:00 Bash

Kaugõpe, 2014-11-08 16:00 Python

Bash

Bash loengumaterjal


Loengute videod 2014 kevad

Enesetest aine bash osa eelduse kontrolliks

Materjal, mille läbitöötamine asendab BASH loengutes kaasatöötamist

Loengute ja praktikumide salvestused -- eelmiste aastate omad


Esimene bash loeng - sissejuhatus päevaõppele 05.02.2013


Tunnis lahendatud näited leiab siit - Bash näited 2013

Kiiruse peale lahendatavad ülesanded. Punkte saab esimene töötav lahendus Bash quests 2014


Bash arvestuse saamiseks tuleb teha kodutöö, mis koosneb kahest osast (vaata loengumaterjali) ja sooritada arvestustöö kas tunnis või arvestuse päeval. Arvestustöö tegemise eelduseks on esitatud kodutöö.

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

Kes jõuab teeb enne konfiguratsioonist koopia ja teeb muudatused koopiasse. Koopiat testitakse testparm korraldusega ja kopeeritakse alles seejäral fail üle

Tunnis antud näide

Ü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


Tunnis antud ülesanded (BASH)

Teha skript, mis loeb käsurealt ip aadressi ja nime,
 ning lisab loetud andmed /etc/hosts faili (5p, 3p, 2p)

Bash quests 2013 - leht neile, kellel pole bash kodutöö teema ideed...

Skriptimiskeeled aine aruanded 2010 sügis

Teemad

Python

Loengumaterjal ODP vormingus

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/ - Selle materjali läbimine asendab loengutes kohalkäimist

http://www.codecademy.com/tracks/python - Väga hea algus algajale

https://courses.cs.ut.ee/all/MTAT.03.100/2012_fall/uploads/opik/ - Suurepärane materjal

Python tunnis tehtud näited‎

#!/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()



Python arvestustöö kaubõppele 31. jaanuar 2015.a.

Loo skript, mis saab kaks käsurea argumenti, sisendfail ja väljundfail.

Sisendfailis on suvaline tekst.

Skript loeb kokku kõik sisendfaili erinevad sõnad ja kirjutab tulemuse väljundfaili kujul.

SÕNA,MITU,PROTSENT


Näiteks failis on neli sõna: siin ei ole kala


Väljund on:

siin,1,0.25
ei,1,0,25
ole,1,0.25
kala,1,0.25


Arvestustöö neile, kellel python kodutöö on saadetud. Arvestus tuleb saata hiljemalt esmaspäeval 22.detsembril

Loo skript, mis saab kaks käsurea argumenti, sisendfail ja väljundfail.

Sisendfailis on suvaline tekst.

Skript loeb kokku kõikide sisendfailis olnud tähtede esinemissageduse ja kirjutab selle väljundisse kujul.

TÄHT,MITU_OLI,PROTSENT kogu tähtede arvust

Näiteks sisendfail sisaldab:

Siin ei ole kala

Väljundfail:

s,1,7.6923077
i,3,23.0769231
n,1,7.6923077
e,2,15.3846154
o,1,7.6923077
l,2,15.3846154
k,1,7.6923077
a,2,15.3846154

Kui skriptil on vale arv parameetreid või skript ei saa faile avada sobivaks operatsiooniks või faili kirjutada/lugeda, siis tuleb tagastada veakood sys.exit(X). Veakoodid valid ja dokumenteerid ise.

Näidiskodutöö neile, kes ise teemat ei leidnud ja õppejõult ei saanud

Skriptil on kaks parameetrit.


1. sisendfaili nimi

2. väljundfaili nimi

Skript kontrollib, et ette oleks antud kaks parameetrit ja sisendfailist saab lugeda ja väljundfaili saab kirjutada.

Sisendfailis on komadega eraldatud 3 tulpa

1. URL,kasutajanmi,parool,otsitav string

Näiteks

http://enos.itcollege.ee,robot,kala,Server
http://enos.itcollege.ee/~mernits/basicauth/kala.html,robot,kala,SIIN EI OLE KALA
http://robot.itcollege.ee/kala.html,,,KALA

Kui server nõuab basic autentimist, siis kasutad antud kasutajanime ja parooli. Kui server ei nõua autentimist, siis kasutajanime ja parooli ei saadeta.

Kui kasutajanimi ja parool puuduvad, siis kasutajanime ja parooli ei saadeta. (kasutajanimi ja parool ei pea olema kirjas)

Skript teeb päringu iga sisendfaili rea kohta ja kirjutab väljundfaili kujul:

URL,kuupäev-kellaaeg kujul (AAASTA-KUU-PÄEV TUNNID:MINUTID:SEKUNDID),kasutajanimi,parool,otsitav string,OK

Kui päringu vastuses oli otsitav string ja rea:

URL,kuupäev-kellaaeg kujul (AAASTA-KUU-PÄEV TUNNID:MINUTID:SEKUNDID),kasutajanimi,parool,otsitav string,NOK

Kui otsitav string puudus, või kasutajanimi parool oli vale või server ei vastanud (ehk kõik ülejäänud juhud, kui otsitavat stringi ei leitud)

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

Paigaldage Windows Management Framework 5.0 Preview http://www.microsoft.com/en-us/download/details.aspx?id=44987


Skriptimiskeeled: powershelli kodutööd 2012, kevad, päevaõpe

PowerShelli arvestusülesanne 2011, sügis, kaugõpe

PowerShell scriptimiskeele tutvustus, peamised kasutatavad käsud

Tutvustus


PowerShelli paigaldus

PowerShelli seaded

  • 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

Muutujad ja massiivid

If, kordused ja konveierid

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


Näited

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


Kaughaldus PowerShelli abil

Teooria

Praktika

Mida uut tuleb PowerShell 5.0 versioonis

Windows Management Framework 5.0 - http://www.microsoft.com/en-us/download/details.aspx?id=44987 'OneGet' - apt-get powershellile



Find-Package näited

Find-Package -Name Java -AllVersions
Find-Package -Name Eclipse -MinimumVersion 4.1 -MaximumVersion 4.3
Find-Package -Name Java, Eclipse-kepler, WinRAR | Install-Package

Pakkide allikaid võib lisada, kuid üks on vaikimisi kaasas PS5 preview versiooniga: Chocolatey

Get-Command -Module OneGet
Get-PackageSource
Install-Package git
Update-Package git
Uninstall-Package git

http://docs.nuget.org/docs/reference/package-manager-console-powershell-reference

PowerShell kodutööd

1. Teha skript, mis logib sisse BasicAuth abil kaitstud veebilehele ja laeb sealt alla faili.

Skripti parameetrid on 1. url 2. username [3.password]

Skript küsib parooli kasutajalt, kui seda pole ette antud käsurealt.

Skript laeb alla faili mis on url abil antud.


N2iteurl: http://enos.itcollege.ee/~mernits/basicauth/kala.html Kasutajanimi robot ja parool on kala


Vanad kontrolltööd ja arvestustööd

Skriptimiskeelte arvestustööd ja kontrolltööd

This category currently contains no pages or media.