Category Archives: Bash

Bash: Skrypt automatycznej aktualizacji

Dawno nic nie napisałem dla mojego serwera, pomyślałem więc aby dodać mu skrypt który będzie wykonywał aktualizacje systemu.
Sprawa jak najbardziej prosta, a użyć potrzeba języka Bash. :)
Sam skrypt wygląda następująco:

#!/bin/bash
 
# Pobieramy liste pakietow, nastepnie dokonujemy aktualizacji
# Parametr -y akceptuje wszystkie pytania apt'a
apt-get update && apt-get -y upgrade
# Loguje informacje o dokonaniu aktualizacji systemu.
time=`date`
echo $time ----> Wykonano aktualizacje systemu. >> /mnt/dysk3/internet.log
#Usuwam zbedne pakiety oraz pobrane paczki .deb
apt-get -y autoclean
apt-get -y autoremove
# Koniec :-)

Teraz dodatkowa sprawa, mamy już skrypt jednak aby uruchamiał nam sie on co jakiś czas musimy dodać odpowiednią notke do crontaba, edytujemy więc plik:

nano /etc/crontab

Dodajemy do tego pliku następującą linijkę:

* * 5 * *     root    /bin/sh /etc/skrypt # Lokalizacja skryptu!

Tak więc na naszym dysku będzie pojawiał sie log z przeprowadzonych operacji,
a nasz system będzie stale aktualizowany. – Co jest przeważnie zalecane.

Bash: Skrypt autopolączenia

Całkiem niedawno mój dostawca internetu, zmienił czas resetowania swojego sprzętu.
Na 3 godzine w nocy, po każdym restarcie mój serwer ( Ubuntu ) nie mógł się podlączyć.
Trzeba było mu pomóc :) Z pomocą przychodzi nam język Bash.
Opis skryptu:

Potrzebujemy, aby komputer po wykonaniu pingu stwierdził:
Czy internet jest, czy go nie ma.
I wykonał odpowiednie komendy i następnie zapisał “brak internetu”,
do logu w wybranym przez nas miejscu.
Nic strasznego, jak sie przekonałem! :)
Kod:

#!/bin/bash
( ping -c1 wp.pl )
# Możemy wybrać zamiast wp.pl, całkiem inny adres na którym ma być sprawdzany ping.
if [ "$?" -eq "2" ];
then
echo "internet nie dziala!"
# Dostajemy informacje iż internet nie działa.
iwconfig wlan0 essid X  & /etc/init.d/networking restart
# Wpisujemy komendy jakie mają być wykonane.
time=`date`
echo $time " <-- brak dostępu do internetu" >> /mnt/dysk3/internet.log
# Miejsce gdzie ma być zapisywany log !
else
echo "Internet dziala"
fi

Plik zapisujemy w interesującej nas lokalizacji, np. /etc/skrypt

Prosta sprawa, zostanie sprawdzony ping, po otrzymaniu odpowiedzi pozytywnej “brak internetu” ->  zostanie uruchomiona komenda + zapisanie do logu odpowiedniej notki ( data ) kiedy nasz internet przestał działać.
W przypadku gdy internet działa, zostaniemy powiadomieni “internet działa”.
To tyle jeśli chodzi o skrypt.Aby nasz skrypt, był uruchamiany co minutę,
musimy dodać odpowiedni wpis do /etc/crontab
Edytujemy plik:

nano /etc/crontab

I dodajemy linijkę:

*/1 * * * *     root    /bin/sh /etc/skrypt

Od teraz nasz skrypt powinien dzialać.
Mamy bezpieczeństwo iż skrypt zostanie uruchomiony, podczas rozlączenia. ;)
Skrypt pisałem sam, po przeczytaniu poradników.
Polecam zainteresować się tą stroną.
www.linux.rk.edu.pl/w/p/bash-skrypt