• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Linux, bash, program

Object Storage Arubacloud
0 głosów
579 wizyt
pytanie zadane 23 czerwca 2018 w Inne języki przez Paweł Insadowski Nowicjusz (150 p.)

Proszę stworzyć skrypt w systemie archlinux sprawdzający czy procesor w systemie posiada błąd spectre i meltdown.  Skrypt powinien wyświetlić wiadomosc:

a) Procesor bezpieczny

b) albo procesor podatny na spectre .. meltdown

Podpowiedź. Informacja o podatności znajduje się w pliku /proc/cpuinfo

Witam, proszę o pomoc w napisaniu skryptu w bash. Oto co udało mi się zrobić do tej pory:

#!/bin/bash
x='spectre_v1'
y='spectre_v2'
z='cpu_meltdown'  

if grep -iq "$x" /proc/cpuinfo
then 
  	echo "Komputer jest podatny na spectre_v1"
elif grep -iq "$y" /proc/cpuinfo
then
  	echo "Komputer jest podatny na spectre_v2"
elif grep -iq "$z" /proc/cpuinfo
then
  	echo "Komputer jest podatny na meltdown"
else
  	echo "Komputer jest bezpieczny"
fi

Problem polega na tym, że po sprawdzeniu pierwszego if-a skrypt się kończy, a powinien wypisać że jest podatny na: 1,2,3 lub że jest czysty. 

Może jest łatwiejsza metoda lecz na nią nie wpadłem. Pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 23 czerwca 2018 przez RafalS VIP (122,820 p.)
wybrane 24 czerwca 2018 przez Paweł Insadowski
 
Najlepsza
Możliwe, że to przez brak średników. Spróbuj pododawać średniki po warunkach ifów.
komentarz 23 czerwca 2018 przez Paweł Insadowski Nowicjusz (150 p.)
#!/bin/bash
x='spectre_v1'
y='spectre_v2'
z='cpu_meltdown'  

if grep -iq "$x" /proc/cpuinfo;
then 
  	echo "Komputer jest podatny na spectre_v1"
elif grep -iq "$y" /proc/cpuinfo;
then
  	echo "Komputer jest podatny na spectre_v2"
elif grep -iq "$z" /proc/cpuinfo;
then
  	echo "Komputer jest podatny na meltdown"
else
  	echo "Komputer jest bezpieczny"
fi

Miałem wcześniej tak lecz nie było różnicy w rezultacie. Skrypt sprawdza czy w pliku jest nazwa spectre_v1 i wypisuje to na ekranie po czym jest koniec. 

komentarz 23 czerwca 2018 przez RafalS VIP (122,820 p.)
O ludzie. Za długo dzisiaj siedze na tym forum, bo nie widze głupich błędów :D. Elif to else if. Czyli jeśli warunek ifa nie jest spelniony to sprawdzamy kolejny elif warunek. Jeśli natomiast warunek piewrszego ifa będzie spełniony to program nie idzie dalej i nie powinien wejśc do else if. Zrób wszedzie zwykłe ify :P
komentarz 23 czerwca 2018 przez Paweł Insadowski Nowicjusz (150 p.)

./spectre.sh: linia 19: błąd składni: nieoczekiwany koniec pliku

 

#!/bin/bash
x='spectre_v1'
y='spectre_v2'
z='cpu_meltdown'  

if grep -iq "$x" /proc/cpuinfo;
then 
  	echo "Komputer jest podatny na spectre_v1"
if grep -iq "$y" /proc/cpuinfo;
then
  	echo "Komputer jest podatny na spectre_v2"
if grep -iq "$z" /proc/cpuinfo;
then
  	echo "Komputer jest podatny na meltdown"
else
  	echo "Komputer jest bezpieczny"
fi

 

komentarz 23 czerwca 2018 przez RafalS VIP (122,820 p.)

Wiem, że zrobiłeś tylko to co napisałem, ale miałem na myśli poprawienie do poprawnej skladni ifa :D:

if
then
fi

 

komentarz 23 czerwca 2018 przez Paweł Insadowski Nowicjusz (150 p.)

Okej, udało mi się dojść do momentu że wypisuje mi wszystkie 3 czyli jest prawidłowo, jeszcze tylko nie wychodzi mi jak wpleść tam else, że jeżeli tam nic nie będzie to wyświetli mi że jest bezpieczny

#!/bin/bash
x='spectre_v1'
y='spectre_v2'
z='cpu_meltdown'  

if grep -iq "$x" /proc/cpuinfo;
then
  	echo "Komputer jest podatny na spectre_v1"
fi
if grep -iq "$y" /proc/cpuinfo;
then
  	echo "Komputer jest podatny na spectre_v2"
fi
if grep -iq "$z" /proc/cpuinfo;
then
  	echo "Komputer jest podatny na meltdown"
fi

do tego momentu działa wszystko, dopisując poprostu else itp na końcu wychodzi błąd

komentarz 23 czerwca 2018 przez Paweł Insadowski Nowicjusz (150 p.)

Zrobiłem coś takiego trochę taką metodą może nie najkrótszą lecz działa, jakbyś miał lepszy pomysł to chętnie się dowiem.

Pozdrawiam

#!/bin/bash

x='spectre_v1'

y='spectre_v2'

z='cpu_meltdown'  



if grep -iq "$x" /proc/cpuinfo;

then

  	echo "Komputer jest podatny na spectre_v1"

else

	echo "Komputer jest odporny na spectre_v1"

fi

if grep -iq "$y" /proc/cpuinfo;

then

  	echo "Komputer jest podatny na spectre_v2"

else

	echo "Komputer jest odporny na spectre_v2"

fi

if grep -iq "$z" /proc/cpuinfo;

then

  	echo "Komputer jest podatny na meltdown"

else

	echo "Komputer jest odporny na meltdown"

fi

 

komentarz 23 czerwca 2018 przez RafalS VIP (122,820 p.)
Kurcze. Teraz to gadamy o strasznych podstawach programowania :D. Zrób zmienną liczbaPodatnosci. Zainicjuj zerem i dodawaj jeden za kazda podatnosc. Jeśli na koniec liczbaPodatnosci bedzie 0 to komputer jest bezpieczny.

Podobne pytania

0 głosów
0 odpowiedzi 761 wizyt
+1 głos
2 odpowiedzi 273 wizyt
pytanie zadane 15 kwietnia 2018 w Inne języki przez Sic Dyskutant (8,510 p.)
0 głosów
1 odpowiedź 228 wizyt
pytanie zadane 20 lutego 2020 w Inne języki przez Marak123 Stary wyjadacz (11,190 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...