Category:Skriptimiskeeled (arhiiv)

From ICO wiki
Revision as of 15:09, 11 February 2013 by Mernits (talk | contribs) (→‎Bash)
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, 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

Bash

Enesetest aine bash osa eelduse kontrolliks

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


Bash loengumaterjal

Esimene bash loeng - sissejuhatus päevaõppele 05.02.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

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 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 - 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()


Loengumaterjal ODP vormingus

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 5.Jaan.2013)

Kui sul on kodutöö kirjas, siis sobib antud skript arvestuseks:

Looge skript, mis arvutab iga üliõpilase kohta kõikide hinnete kaalutud keskmise.

Sisendfail on kujul:

Üliõpilane;Aine nimi;EAP;Hinne


Näiteks

Margus Ernits;Operatsioonisüsteemide administreerimine ja sidumine;5;5

Kala Kaks;Skriptimiskeeled;4;5


Väljund:

Margus Ernits;5.0

Kala Kaks;5.0


Sisend võetakse failist, mis antakse ette käsurea argumendina

Näiteks: ./kodu2.py fail.txt

Veatöötlis: Kui faili ei ole või seda ei saa avada, siis skripti väljumiskood (exit code) on 1.

Skript peab töötama ka tühja faili puhul.

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 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

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.