Lab 06

Uwagi do ćwiczeń

Tworzymy sprawozdanie z wykonanych czynności

Proszę o wykonywanie poniższych ćwiczeń, dokumentując rezultaty

  • zapisanie numeru polecenia w nagłówku
  • opis czynności
  • wykonywanie zrzutów ekranu
  • umieszczanie tych zrzutów jako zawartości do dowolnego edytora tekstu np. Word, Writer
  • w żadnym przypadku nie kopiujemy manual-a lub helpa

Sprawozdanie zapisujemy w formacie PDF i przesyłamy do systemu jako potwierdzenie swojego udziału w zajęciach i wykonania ćwiczeń.

Plik sprawozdania proszę zapisać jako: Sprawozdanie_lab06_JanKowalski.pdf, dla studenta o nazwisku Jan Kowalski.

Zadania - Część pierwsza

Monitorowanie procesów:

  1. Użyj polecenia top lub htop (jeśli jest dostępne) aby monitorować procesy w czasie rzeczywistym.
  2. Zidentyfikuj procesy, które zużywają najwięcej zasobów (CPU i pamięci RAM).
  3. Zapisz, jak zmienia się zużycie zasobów przez te procesy w ciągu kilku minut.
  4. Wybierz jeden z procesów monitorowanych w części 1.
  5. Zmodyfikuj priorytet wybranego procesu, używając polecenia nice lub renice.
  6. Obserwuj, jak zmiana priorytetu wpływa na alokację zasobów dla tego procesu.
  7. Omów, jak zmiana priorytetu procesu wpłynęła na jego zachowanie i zużycie zasobów.
  8. Wnioski: Wyjaśnij, w jakich sytuacjach zarządzanie priorytetami procesów może być przydatne.

Obsługa repozytorium Github:

  1. Załóż konto na GitHub i utwórz nowe repozytorium.
  2. Sklonuj repozytorium na lokalny komputer.
  3. Wykonaj prosty kalkulator w języku python.
    1. Przyjmuje 3 argumenty: calc.py <liczba_1> < operacja + - > <liczba_2>
    2. Zapisuje wynik do pliku /tmp/wynik.txt
  4. Wykonaj pierwszy commit i push konfiguracji systemu do repozytorium na GitHub.
  5. Dokumentuj wszystkie kroki i napisz krótki raport opisujący proces i napotkane wyzwania.
  6. Na koniec utwórz skrypt w bash, skrypt ma być uruchamiany podczas startu naszego systemu i jego zadaniem jest uruchomienie naszego kalkulatora(crontab).

Zadania - Część druga

  1. Napisz skrypt w jezyku AWK zapisujący do pliku named1.txt tylko te linie, które zawierają słowo “Zadanie”.
  2. Napisz skrypt w języku BASH, wyświetlający tylko te pliki, które zostały zmodyfikowane w miesiącu podanym jako parametr skryptu.

Podstawy AWK

Mała pomoc przy AWK - youtube

Basics

AWK - programming language used for processing text data

Each program of this language consists of any number of params pattern {action}

Running scripts

awk -f script_file.awk [parameters]
awk 'pattern {action}' [parameters]

Sample

#!/bin/env awk

pattern1 {action1}
pattern2 {action2}

We give the right to exercise; we run like a shell script

Built-in variables:

  • ARGC - the number of arguments given from the command line
  • ARGV - array of arguments given from the command line
  • CONVFMT - internal conversion of numbers into strings (default “% .6g”)
  • ENVIRON - array indexed by environment variable names (eg ENVIRON [“OSTYPE”] = “linux-gnu”)
  • FILENAME - the name of the currently processed file
  • FNR - record number in the currently processed file
  • FS - separator of input fields
  • NF - number of fields in the record
  • NR - the number of the record processed in the entire input stream
  • OFMT - printed number format (default “% .6g”)
  • OFS - output field separator (default space character)
  • ORS - separator of output records (default “\n”)
  • RS - input record separator ("\n" by default)

Control instructions:

if ( condition ) instruction[ else instruction ]
while ( condition ) instruction
do instruction while ( condition )
for ( initialization; condition; increment ) instruction
for ( variable in array ) instruction
break
continue