This shows you the differences between two versions of the page.
uso:teme:tema-2 [2022/12/17 18:32] rares.constantin02 [Informații generale] |
uso:teme:tema-2 [2023/11/14 16:46] (current) rares.constantin02 [Task 07 (20p)] |
||
---|---|---|---|
Line 24: | Line 24: | ||
<note important> | <note important> | ||
- | Deadline: **20 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 31: | 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 129: | Line 127: | ||
- | ==== Task 01 (15p) ==== | + | ==== Task 01 (10p) ==== |
- | === Verificarea conexiunii la Internet pe mașina virtuală === | + | === Verificarea conexiunii la Internet pe mașina virtuală [4p] === |
Găsiți prin orice comandă interfața disponibilă si verificați că aveți IP pe interfața găsită. | Găsiți prin orice comandă interfața disponibilă si verificați că aveți IP pe interfața găsită. | ||
Salvați acest output într-un fișier numit: "/home/student/tema2/task1/conexiune_internet.txt" | Salvați acest output într-un fișier numit: "/home/student/tema2/task1/conexiune_internet.txt" | ||
- | === Verificați conectivitatea către un IP din Internet: === | + | === Verificați conectivitatea către un IP din Internet [3p] === |
Trimiteți exact 8 pachete la un interval de 4 secunde fiecare către serverul DNS Google 8.8.8.8 folosind utilitarul ping. | Trimiteți exact 8 pachete la un interval de 4 secunde fiecare către serverul DNS Google 8.8.8.8 folosind utilitarul ping. | ||
Salvați outputul într-un fișier numit: "/home/student/tema2/task1/conexiune_server.txt" | Salvați outputul într-un fișier numit: "/home/student/tema2/task1/conexiune_server.txt" | ||
- | === Verificați conectivitatea către un site: === | + | === Verificați conectivitatea către un site [3p] === |
Trimiteți exact 5 pachete la un interval de 2 secunde fiecare la adresa www.google.com folosind utilitarul ping. | Trimiteți exact 5 pachete la un interval de 2 secunde fiecare la adresa www.google.com folosind utilitarul ping. | ||
Line 147: | Line 145: | ||
- | ==== Task 02 (10p) ==== | + | ==== Task 02 (5p) ==== |
Line 204: | 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 214: | Line 213: | ||
<note tip> | <note tip> | ||
* Fisierul ''CONTRIBUTING.md'' din Unikraft contine informatii utile, care va pot ajuta in rezolvarea cerintelor. | * Fisierul ''CONTRIBUTING.md'' din Unikraft contine informatii utile, care va pot ajuta in rezolvarea cerintelor. | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | Aveți în vedere și să marcați proiectul ca fiind **starred**. | ||
</note> | </note> | ||
Line 260: | 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]] | ||
+ | |||
+ | ==== 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''. 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 **<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>. <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> | ||
- | **Dacă nu se află nimic în cele două variabile de mediu, restartați mașina virtuală.**\\ | + | * toate căile din fișierele **".sh"** trebuie sa fie căi absolute |
- | Aveți grijă atunci când dați check/submit, token-ul dat de GET se va reseta odată la 3 minute. | + | * fișierele **".sh"** trebuie sa conțină o singura linie, nu este nevoie de ''#!/bin/bash'' |
+ | * taskurile 2 si 3 se vor rezolva exclusiv in directorul ''/home/student/tema2/task8/'' | ||
</note> | </note> | ||
+ | |||
==== Task obligatoriu pentru toate temele la final ==== | ==== Task obligatoriu pentru toate temele la final ==== |