[bash] sprawdzanie rodzaju dystrybucji

0

Cześć

Potrzebuję skryptu który by sprawdzał na jakiej dystrybucji został uruchomiony. Kombinowałem z grep i plikiem /proc/version. Ale nie chce działać :(
Proszę o jakieś wskazówki bo już nie mam kompletnie pomysłów.
Dzięki

0

Nie ma prostego sposobu. Na Debianie masz /etc/debian_version, ale ostroznie, bo jest on tez w Ubuntu i innych debianowatych. Czasem jakaś konkretna informacja jest w /etc/issue, ale to też zgadywanie. Jedyny senwosny pomysł to zapytać usera... :)

0

Właśnie chodzi o coś takiego żeby na debianie i Od razu na ubuntu działało. Z zapytaniem usera to nie za bardzo bo skrypt musi być wykonywany w tle, ma za zadanie dodanie innego skryptu z firewallem do autostartu i dlatego musi wiedzieć na jakiej dystrybucji jest uruchomiony.

0

dodam tylko, ze na gentoo jest /etc/gentoo-release

0

Pliki znajdę w dokumentacji odpowiedniej dystrybucji, teraz potrzebuję tylko dowiedzieć się jak za pomocą grep wyciągnąć wzorzec z pliku porównać.

0

Raczej nie tyle grep, co cut byłby bardziej przydatny chyba.

Możesz to zrobić banalnie prosto (na przykładzie systemów redhat-like):

[[email protected] ~]$ zmienna=`cat /etc/redhat-release | cut -d " " -f 1`
[[email protected] ~]$ if [ $zmienna == "CentOS" ]; then echo "Hura, CentOS"; else echo "PLD, RHEL, Fedora albo inny potomek RedHata"; fi
Hura, CentOS
[[email protected] ~]$

Choć IMO najbardziej istotny jest rodzaj dystrybucji, bo mimo wszystko Linux jest bardzo do siebie podobny wewnątrz pewnej rodziny. Wystarczy sprawdzać istnienie plików debian_release, redhat-release, gentoo-release na przykład i na ich podstawie wybierać co to może być.
Gorzej jak trafisz na jakiś egzotyczny system :-)

0

a polecenie uname -a ci nie starczy? zdaje sie że rózne dystrybucje sie tam przedstawiają. Ewentualnie mozna jeszcze sprawdzac nazwe kompilacje jądra i tam wyciagac nazwe systemu.

0

uname -a nie daje nazwy dystrybucji.

0

polecam
cat /etc/*release
bądź
ls /etc/*release

1 użytkowników online, w tym zalogowanych: 0, gości: 1