Úvod do Operačních Systémů

Podobné dokumenty
Úvod do Operačních Systémů

Úvod do Operačních Systémů

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Proměnné a parametry. predn_08.odt :00:38 1

C2110 Operační systém UNIX a základy programování

C2110 Operační systém UNIX a základy programování

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování

PSK3-9. Základy skriptování. Hlavička

PROGRAMOVÁNÍ V SHELLU

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Nastroje na zpracovani textu:

Sekvenční a podmíněné provádění

Tipy a triky nejenom v shellu nejenom pro programátory

Základní příkazy pro práci se soubory

Úvod do Operačních Systémů

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

BASH. Kouzla s příkazovou řádkou. Petr Koloros

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Unix je víceuživatelský a víceúlohový OS

Úvod, jednoduché příkazy

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

Střední odborná škola a Střední odborné učiliště, Hořovice

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

Úvod do Operačních Systémů

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Úvod do Operačních Systémů

Skripty - úvod. Linux - skripty 2

Střední odborná škola a Střední odborné učiliště, Hořovice

Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5

Úvod do Operačních Systémů

Operační systémy. Cvičení 4: Programování v C pod Unixem

Úvod do Linuxu. SŠSI Tábor 1

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

LINUX přesměrování a roury

Histogram. 11. února Zadání

Linux-příkazový řádek

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Základní příkazy UNIXu (Linuxu)

Identita uživatelů, přístupová práva. Linux

1. Webový server, instalace PHP a MySQL 13


Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A

Úvod do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta 2003/2004

Počítačové sítě Systém pro přenos souborů protokol FTP

Speciální soubory. Editace příkazové řádky. $ fg mp3blaster $./skript.sh. [2]+ Stopped./skript.sh $ bg [2]+./skript.sh & $ fg 2./skript.

Jak spustit PC Fand na 64bit Windows - VdosPlus instalace

Příkaz find, práce s procesy a úlohami, plánování úloh

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

Konstruktory překladačů

Basic256 - úvod do programování Příklady. ing. petr polách

VISUAL BASIC. Přehled témat

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

ABC Linux běží z CD české prostředí tištěná příručka obsah portálu Mutt Jak začít? Jan Fuchs

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Úvod do Linuxu SŠSI Tábor 1

Manuál Multitag čtečka

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

awk programovatelný filtr

Regulární výrazy a grep

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

E+034 = ; = e E+034

Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY Matěj Trakal

Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde. find adresář -name "maska_souboru" [-print] [-exec proces {} \;]

Tahák na UOS 2008/2009

Úvod do Operačních Systémů

Modbus SecuriPro Protocol Bridge

Uživatelské příkazy: false - dialog ukončen IDCANCEL. Vytvoří nové okno. title - titulek okna

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

Cvičení předmětu BI PUN (Pokročilé Unixové Nástroje)

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Operační systéme II cvičení

ID Microserver 2. TCP Server pro obsluhu čteček k PC: Uživatelský manuál

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1 Webový server, instalace PHP a MySQL 13

Panel IPP. Ovladač řídící jednotka

SQL a XML jako alternativa ke klasickým unixovým nástrojům

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Téma 9: Administrace systému CentOS. Představení a používání aplikací pro administraci CentOS

Stručný návod k programu Octave

Systém souborů (File System)

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Programování v Pythonu

Numerické výpočty, komprese a archivace, návratový kód.

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Instalace a konfigurace web serveru. WA1 Martin Klíma

Operační systémy. Cvičení 1: Seznámení s prostředím

Práce se soubory. Základy programování 2 Tomáš Kühr

Visualizace a animace. Jan Velechovský. Maple. plots Odkazy. Matlab. Animace Odkazy IDL. Odkazy. Gnuplot. 10. prosince Animace.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Programy v prostředí operačního systému

Instalace WSJT-X 1.7 Instalační soubor stáhneš z této adresy

FORTANNS. 22. února 2010

PSK3-3. Základní příkazy. Zápis cesty

Transkript:

Úvod do Operačních Systémů 10. cvičení Uživatelský vstup, zpracování přepínačů, psaní a ladění skriptů, plánování úloh. 1

Obsah Skript pro logování informací o systému, uložení konfigurace, transformaci logu. Psaní a ladění skriptů #! set Zpracování přepínačů getopts Uživatelský vstup read Plánování úloh crontab 2

Cíl 3

Výběr informací Skript bude logovat informace o zatížení systému (load) (průměr za 1, 5 a 15 min) a počtu příhlášených uživatelů (celkem a unikátních). Formát log souboru [27/11/2006-07:30:00] Load: 0.75 0.36 0.12 [27/11/2006-07:30:00] Users: 38 29 Informace o zatížení systému uptime... Počet přihlášených uživatelů a počet unikátních uživatelů who... 4

Interpret skriptu (první řádek skriptu) #!/bin/bash Výpis prováděných řádků skriptu #!/bin/bash -v set -v Skript, debug info Výpis prováděných řádků skriptu po expanzi #!/bin/bash -x set -x Nastavení přístupových práv a spuštění skriptu chmod +rx logger./logger 5

Transformační funkce Volání logovacích skriptů, transformace výstupu pomocí funkce log, kde vstupem je jméno informace a samotná informace. filename=.mylog function log() {... } # Logovani urcenych informaci log Load hodnoty... log Users hodnoty... 6

Použití zámků I + Skript při startu zkontroluje, zda neexistuje zvolený soubor (zámek). Pokud ne, vytvoří jej a vloží do něj PID skriptu. LOCK_FILE=$HOME/.mylog.lock if locked then exit 2 fi... else echo $$ > "$LOCK_FILE" trap "rm $LOCK_FILE; exit" 2 3 15 rm "$LOCK_FILE" 7

Použití zámků II + Pokud soubor existuje, ale obsahuje PID procesu, který nepatří tomuto skriptu, soubor se ignoruje. function locked() { } if [ -f "$LOCK_FILE" ] \ && ps -u $USER -o pid,args \ grep "^ *`cat $LOCK_FILE`.* logger" \ >/dev/null then else fi echo "Lock file found! (PID=`cat $LOCK_FILE`)" return 0 return 1 8

VERBOSE=0 CONFIG=$HOME/.mylog.conf LOCK_FILE=$HOME/.mylog.lock Volby z příkazové řádky I USAGE="Usage: $0 [-h] [-vd] [-c config_file]" HELP=" " -h this help -v verbose mode (use multiply for more verbosity) -d daemon mode (check lock file) -c conf use alternative configuration file 9

while getopts hvc: opt do Volby z příkazové řádky II + case $opt in h) #display help echo "$USAGE"; echo "$HELP"; exit 0;; c) #config file if [ -f "$OPTARG" -a -w "$OPTARG" ] then CONFIG=$OPTARG else echo "$OPTARG: wrong config file" >&2; exit 2 fi;; v) #verbose mode ((VERBOSE++)) ((VERBOSE>0)) && set -v ((VERBOSE>1)) && set -x ;; \?) #err - unknown option echo "$USAGE" >&2; exit 2 ;; esac done ; shift `expr $OPTIND - 1` 10

Konfigurační soubor Konfigurační soubor obsahující nastavení ve formátu název_proměnné=hodnota #MyLog config file #Modified: 27.lis 2006 (07:30:00) #Modified by barinkl #filename of log file #filename=/home/k336/barinkl/.mylog filename=/home/k336/barinkl/.mylog #log system load #load=y load=y #log number of users #users=y users=y 11

Konfigurační soubor, vytvoření I Skript vytvářející konfigurační soubor podle vstupu uživatele. Vstup je čten pomocí příkazu read. #cesta k log souboru a jeho jmeno until [ -f "$filename" -a -w "$filename" ] do echo -n "Log filename [$HOME/.mylog]: " read filename junk echo "${filename:=$home/.mylog}" if [ "`echo $filename cut -c1`"!= / ] then fi done filename="$pwd/$filename" [ -f "$filename" ] \ { touch "$filename"; chmod u+w "$filename"; } 12

Konfigurační soubor, vytvoření II Dotaz na logování zátěže (load) možnosti y/n while! echo "$load" grep '^[yynn]$' do echo -n "Log load [y]/n? " read load junk [[ -z "$load" ]] && load=y done Dotaz na logování počtu uživatelů (users) možnosti y/n while! echo "$users" grep '^[yynn]$' do echo -n "Log users [y]/n? " read users junk [[ -z "$users" ]] && users=y; done 13

Konfigurační soubor, vytvoření III cat <<KONEC >"$CONFIG" #MyLog config file #Modified: `date '+%d.%b %Y (%T)'` #Modified by $USER #filename of log file #filename=$home/.mylog filename=$filename #log system load #load=y load=$load #log number of users #users=y users=$users KONEC 14

Načtení konfigurace I Načtení funkce ze souboru readconf do skriptu../readconf Načtení konfigurace ze souboru. Funkce je v samostatném souboru readconf. function readconf() { err=0 while [ $# -gt 0 ] do case "$1" in filename) filename=`sed -n '/^filename=/s/[^=]*=//p' $CONFIG \ tail -1` if! [ -f "$filename" -a -w "$filename" ] then err=1; fi ;; 15

} done esac shift return $err Načtení konfigurace II load) load=`sed -n '/^load=/s/[^=]*=//p' $CONFIG \ tail -1` if [[ "$load"!= [yynn] ]]; then err=1; fi ;; users) users=`sed -n '/^users=/s/[^=]*=//p' $CONFIG \ tail -1` if [[ "$users"!= [yynn] ]]; then err=1; fi ;; *) return 2;; 16

Použití načtení konfigurace Načtení proměnných z konfiguračního souboru # Nacteni konfigurace if! readconf filename load users then fi echo "Error reading config file" exit 2 17

Plánování úloh + Nastavení a vypsání opakovaného spouštění úloh export EDITOR=vi crontab -e * * * * * $HOME/logger den v týdnu měsíc den hodina minuta Možné hodnoty: * každá hodnota */2 každá 2. hodnota 5 hodnota 5 2,7 hodnoty 2 a 7 1-5 hodnoty 1,2,3,4,5 crontab -l 18

Vykreslení grafu z dat v logu + Transformace dat z logu awk '/Load:/ {L1=$3; L2=$4; L3=$5} /Users:/ { print $1,L1,L2,L3,$3,$4}' ~/.mylog >.mylog.data Vykreslení grafu pomocí příkazu gnuplot gnuplot.mylog.plot Zobrazení grafu v obrázku display.mylog.png 19

set terminal png small color set size 1.5 set output ".mylog.png" set rmargin 3 set lmargin 6 set tmargin 1 set bmargin 1.5 set nogrid set multiplot set xdata time set timefmt "[%d/%m/%y-%h:%m:%s]" Skript pro gnuplot ++ set format x "" set size ratio 0.5 plot [][0:] \ '.mylog.data' using 1:2 title '1 min avg' with lines, \ '' using 1:3 smooth bezier title '5 min avg' with lines, \ '' using 1:4 smooth bezier title '15 min avg' with lines set format x "%H:%M" set origin 0,0.99 set size ratio 0.25 plot [][0:] \ '.mylog.data' using 1:5 title 'users' with lines, \ '' using 1:6 title 'uniq users' with lines 20

Příprava na příští cvičení Upravte skripty z tohoto cvičení tak aby byly uživateli hlášeny chyby při práci se soubory (neexistence, nedostatečná práva, špatný obsah,...), skripty i soubory mohly být uloženy v libovolném adresáři (odstranění absolutních cest), skript přijímal argumenty z příkazové řádky, které by uváděly názvy logovacích funkcí (skriptů). Argumenty by pak měly přednost před nastavením z konfiguračního souboru. jméno log souboru mohlo být předáno jako argument přepínače -o z příkazové řádky, přibyla informace, která se bude také logovat. Vytvořte skript a naplánujte jeho pravidelné spouštění, který by generoval do určeného adresáře grafy z log souboru za zvolené období. 21