[+] Skrypt bash i dodanie pętli
: 22 kwietnia 2011, 14:36
Mozolnie piszę "skrypt" instalująco-aktualizujący system. Do tej pory moje wypociny sprowadzały się do układania poleceń po kolei, co samo w sobie jest świetną zabawą. Polecam.
Niestety przy tworzeniu czegoś instalująco-aktualizującego natrafiłem na problem na samym początku. Od razu zrozumiałem, że łopatą tego nie przyklepię bo tu trzeba jakieś argumenty potworzyć i pętle.. Zwracam się zatem do nadwornych skryptologów naszej Agory z prośbą o gotowe rozwiązanie.
A chodzi o:
Podczas wykonywania skryptu skrypt powinien sprawdzić jaką wersją jądra system ma zainstalowaną i uruchomioną. Jeśli wynik sprawdzenia będzie inny niż dajmy na to 2.6.38-2-amd64 to powinien wykonać instalację wspomnianego i restart systemu celem uruchomienia z nowym jądrem.
Następną rzeczą jest, przy ponownym uruchomieniu skryptu po restarcie systemu, przy wykryciu zaktualizowanego i uruchomionego jądra skrypt powinien pominąć restart systemu.
Jak to zapisać w skrypcie bash?
Proszę o pomoc.
Edycja:
Juz poradziłem sobie. Za zainteresowanie dziękuję.
I działa nawet pięknie. Pozwólcie że się pochwalę:
Nieźle jak na mój pierwszy zaawansowany skrypt . 
Niestety przy tworzeniu czegoś instalująco-aktualizującego natrafiłem na problem na samym początku. Od razu zrozumiałem, że łopatą tego nie przyklepię bo tu trzeba jakieś argumenty potworzyć i pętle.. Zwracam się zatem do nadwornych skryptologów naszej Agory z prośbą o gotowe rozwiązanie.
A chodzi o:
Podczas wykonywania skryptu skrypt powinien sprawdzić jaką wersją jądra system ma zainstalowaną i uruchomioną. Jeśli wynik sprawdzenia będzie inny niż dajmy na to 2.6.38-2-amd64 to powinien wykonać instalację wspomnianego i restart systemu celem uruchomienia z nowym jądrem.
Następną rzeczą jest, przy ponownym uruchomieniu skryptu po restarcie systemu, przy wykryciu zaktualizowanego i uruchomionego jądra skrypt powinien pominąć restart systemu.
Jak to zapisać w skrypcie bash?
Proszę o pomoc.
Edycja:
Juz poradziłem sobie. Za zainteresowanie dziękuję.
Kod: Zaznacz cały
echo ''
echo 'Wersja jądra którą używa Twój system to : ' `uname -r`
echo 'Dostępne najnowsze jądro w aktualizowanej dystrybucji to : ' `aptitude show linux-image-2.6-amd64 | grep 'Wymaga:' | sed -e 's/Wymaga: linux-image-*//'`
echo ''
echo 'Wiec Twój system używa aktualnego jądra?'
echo ''
number=1
echo -n 'TAK -naciśnij klawisz 1, NIE -nacisnij klawisz 0 : '
read number
echo 'Wcisnąłeś $number'
if [ $((number % 2)) -eq 0 ]; then
echo 'Czyli używasz stare jądro. Aktualizuję. System zostanie ponownie uruchomiony. Po ponownym uruchomieniu uruchom skrypt ponownie....'
sleep 6
apt-get install linux-image-2.6-amd64 linux-headers-2.6-amd64
else
echo 'Jądro' `uname -r` ; echo 'Przechodzę do dalszych zadań...'
fi
Kod: Zaznacz cały
Wersja jądra którą używa Twój system to : 2.6.38-2-amd64
Dostępne najnowsze jądro w aktualizowanej dystrybucji to : 2.6.38-2-amd64
Wiec Twój system używa aktualnego jądra?
TAK -naciśnij klawisz 1, NIE -nacisnij klawisz 0 : 1
Wcisnąłeś 1
Jądro 2.6.38-2-amd64
Przechodzę do dalszych zadań...
Kod: Zaznacz cały
Wersja jądra którą używa Twój system to : 2.6.38-2-amd64
Dostępne najnowsze jądro w aktualizowanej dystrybucji to : 2.6.38-2-amd64
Wiec Twój system używa aktualnego jądra?
TAK -naciśnij klawisz 1, NIE -nacisnij klawisz 0 : 0
Wcisnąłeś 0
Czyli używasz stare jądro. Aktualizuję. System zostanie ponownie uruchomiony. Po ponownym uruchomieniu uruchom skrypt ponownie....
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności
Odczyt informacji o stanie... Gotowe
linux-headers-2.6-amd64 jest już w najnowszej wersji.
linux-image-2.6-amd64 jest już w najnowszej wersji.
0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 18 nieaktualizowanych.
