This shows you the differences between two versions of the page.
uso:teme:tema-2 [2023/11/08 13:25] andrei.stan2605 |
uso:teme:tema-2 [2023/11/14 16:46] (current) rares.constantin02 [Task 07 (20p)] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | <hidden> | ||
====== Tema 2 ====== | ====== Tema 2 ====== | ||
Line 25: | Line 24: | ||
<note important> | <note important> | ||
- | Deadline: **21 Decembrie 2022 ora 23:55**\\ | + | Deadline: **2 Decembrie 2023 ora 23:55**\\ |
- | Timp de lucru: **14 zile**\\ | + | Timp de lucru: **21 zile**\\ |
Punctaj: **1.0 punct** din nota finală\\ | Punctaj: **1.0 punct** din nota finală\\ | ||
</note> | </note> | ||
Line 32: | Line 31: | ||
<note> | <note> | ||
Actualizări enunț:\\ | Actualizări enunț:\\ | ||
- | + | * **Task 4** Configurarea identității trebuie sa aiba scop local | |
- | * **Actualizare task 6 - fără folosirea unui alias sau a unei variabile!** | + | |
- | * Actualizați și checker-ul folosind "sudo uso update" și "sudo uso start 2". | + | |
</note> | </note> | ||
<note> | <note> | ||
Actualizări checker:\\ | Actualizări checker:\\ | ||
- | * Ultimul update: **Ora 18:30, 17 Decembrie 2022** | + | * 19:00, 12 Noiembrie 2023 |
- | * <color green>**Rulati ''sudo uso update''**</color> | + | * <color green>**Rulați ''sudo uso update''**</color> |
</note> | </note> | ||
===== Cunoștințe evaluate ===== | ===== Cunoștințe evaluate ===== | ||
Line 205: | Line 202: | ||
* un fork propriu al proiectului Unikraft, care apoi va fi clonat în mașina de teme [4p] | * un fork propriu al proiectului Unikraft, care apoi va fi clonat în mașina de teme [4p] | ||
* configurarea git, pe mașina de teme, adăugând o identitate (nume și email) [4p] | * configurarea git, pe mașina de teme, adăugând o identitate (nume și email) [4p] | ||
- | * crearea unui branch nou, pe fork-ul clonat; numele brach-ului trebuie să fie același cu username-ul de pe GitHub [4p] | + | * crearea unui branch nou, pe fork-ul clonat; numele branch-ului trebuie să fie același cu username-ul de pe GitHub [4p] |
* un commit semnat, care să aducă o modificare repository-ului (ex. creați un fișier gol) [4p] | * un commit semnat, care să aducă o modificare repository-ului (ex. creați un fișier gol) [4p] | ||
<note important> | <note important> | ||
+ | * configurarea identității trebuie sa aiba scop **local** | ||
* repository-ul clonat se va afla in folderul /home/student/tema2/task4/ | * repository-ul clonat se va afla in folderul /home/student/tema2/task4/ | ||
* cautati informatii despre ''git config'' si ''Sign Off'' pentru a realiza task-urile | * cautati informatii despre ''git config'' si ''Sign Off'' pentru a realiza task-urile | ||
Line 265: | Line 263: | ||
Creați un fișier ''/home/student/tema2/task7.sh'' care să conțină comenzile ce realizează următoarele: | Creați un fișier ''/home/student/tema2/task7.sh'' care să conțină comenzile ce realizează următoarele: | ||
- | * Trimite o cerere HTTP de tip GET la ''$TASK_API/uso/part1/$SECRET_KEY''. Aceasta vă va întoarce un token cu o durată de viață de 3 minute. | + | * Trimite o cerere HTTP de tip GET la ''141.85.232.81:5000/uso/part1/$USERNAME''. Prin USERNAME vom simula modul de acces utilizand un username pe un server. USERNAME va trebui setat de voi ca variabila de mediu la username-ul personal de Teams (e.g. marcel.gigel02) pentru ca checker-ul sa functioneze. Token-ul primit prin aceasta cerere va fi disponibil un minut, dupa aceea va fi resetat si username-ul va fi sters. |
- | * Trimite o cerere HTTP de tip POST la ''$TASK_API/uso/part2/'' cu un body de tip JSON de forma ''{"secret_key": $SECRET_KEY, "token": <token_primit>}''. | + | * Trimite o cerere HTTP de tip POST la ''141.85.232.81:5000/uso/part2'' cu un body de tip JSON de forma ''{"token": <token_primit>}''. |
La final, dacă se rulează comenzile din fișier, ar trebui să fie afișat doar rezultatul primit după a doua cerere, fără ''newline'' (''\n''). | La final, dacă se rulează comenzile din fișier, ar trebui să fie afișat doar rezultatul primit după a doua cerere, fără ''newline'' (''\n''). | ||
[[https://linuxhint.com/http-get-vs-post-methods/|GET vs POST methods]] | [[https://linuxhint.com/http-get-vs-post-methods/|GET vs POST methods]] | ||
- | |||
- | <note important> | ||
- | **Dacă nu se află nimic în cele două variabile de mediu, restartați mașina virtuală.**\\ | ||
- | Aveți grijă atunci când dați check/submit, token-ul dat de GET se va reseta odată la 3 minute. | ||
- | </note> | ||
==== Task 08 (10p) ==== | ==== Task 08 (10p) ==== | ||
- | [2p] 1. Obțineți repository-ul următor la voi pe calculator: https://github.com/andreistan26/server-data și salvați-l la adresa ''/home/student/tema2/task8'', rezultând directorul ''/home/student/tema2/task8/server-data''. | + | [2p] 1. Obțineți repository-ul următor la voi pe calculator: https://github.com/andreistan26/server-data și salvați-l la adresa ''/home/student/tema2/task8'', rezultând directorul ''/home/student/tema2/task8/server-data''. Apoi copiați fisierul **connection-logs.txt** in directorul ''/home/student/tema2/task8''. |
- | [4p] 2. Dupa ce ați rezolvat pasul anterior veți avea in director fișierul ''connection-logs.txt'', care conține in formatul ''**<user-id> <inactive/active> <duration>**'' date despre conexiunile utilizatorilor la un serviciu. Afișați conexiunile inactive in formatul ''**<uid> <duration>**'' si pe ultima linie '**Total: <numar conexiuni inactive>**' in fișierul ''inactive_connections_out.txt''. Salvați oneliner-ul in fișierul ''inactive_connections.sh''. | + | [4p] 2. Dupa ce ați rezolvat pasul anterior veți avea in director fișierul **connection-logs.txt**, care conține in formatul **<user-id> <inactive/active> <duration>** date despre conexiunile utilizatorilor la un serviciu. Afișați conexiunile **inactive** in formatul **<user-id> <duration>** si pe ultima linie **Total: <numar conexiuni inactive>** in fișierul **inactive_connections_out.txt**. Salvați oneliner-ul in fișierul **inactive_connections.sh**. |
- | [4p] 3. Gasiti cei 8 utilizatori care au cea mai lunga conexiune activă. Afișarea se va face in formatul ''**<index>. <uid> <connection>**'' si salvată in fișierul ''longest_connections_out.txt''. Salvați oneliner-ul in fișierul ''longest_connections.sh''. | + | [4p] 3. Gasiti cei 8 utilizatori care au cea mai lunga conexiune activă. Afișarea se va face in formatul **<index>. <user-id> <duration>** si salvată in fișierul **longest_connections_out.txt**. Salvați oneliner-ul in fișierul **longest_connections.sh**. |
<note important> | <note important> | ||
+ | * toate căile din fișierele **".sh"** trebuie sa fie căi absolute | ||
* fișierele **".sh"** trebuie sa conțină o singura linie, nu este nevoie de ''#!/bin/bash'' | * fișierele **".sh"** trebuie sa conțină o singura linie, nu este nevoie de ''#!/bin/bash'' | ||
- | * comenzile trebuie sa creeze fișierele in care afișează | + | * taskurile 2 si 3 se vor rezolva exclusiv in directorul ''/home/student/tema2/task8/'' |
- | * toate fișierele vor fi salvate in directorul ''/home/student/tema2/task8/server-data'' | + | |
</note> | </note> | ||
Line 297: | Line 290: | ||
Când finalizați tema asigurați-vă că ați submis tema cu ''sudo uso submit''. </note> | Când finalizați tema asigurați-vă că ați submis tema cu ''sudo uso submit''. </note> | ||
- | </hidden> |