bash - Jak powiadomi

Potrzebujesz pomocy z C, C++, perl, python, itp.
szefooo
Posty: 3
Rejestracja: 03 czerwca 2010, 18:25

bash - Jak powiadomić admina serwera mailem o małej ilości miejsca na dysku?

Post autor: szefooo »

Witam!
Chciałbym napisać skrypt, który będzie pobierał z pliku a.txt pewną wartość np. 400MB. Następnie sprawdzi, czy ilość miejsca dostępnego na dysku nie jest mniejsza/równa tej wartości i jeśli będzie za mało miejsca to wyśle e-mailem wiadomość do admina.

Trochę już kombinowałem sam ale nie wiem czy dobrze?

Pobierz z pliku wpisane, 400 czyli minimum wolnego miejsca.
Zapisz ją jako zmienną a. Jak?

Kod: Zaznacz cały

(tu pewnie czegos brakuje) < plik_z_wpisana_liczba_400
I chciałbym mieć w tym pliku jeszcze zapisane inne zmienne, które później wykorzystam w innym celu.

Sprawdzam aktualną ilość wolnego miejsca na dysku.

Kod: Zaznacz cały

df -h
Pokazuje wolne miejsce na podłączonych systemach plików.
Tu znów nie wiem jak przypisać tą wartość jakiejś zmiennej b.

Sprawdzam, czy wolne miejsce w systemie jest mniejsze lub równe temu z pliku.
Najlepiej co pewien odstęp czasu.

Kod: Zaznacz cały

if [ b -lt a ]
then
  mail -s "temat wiadomości" mój_adres@email.com < plik_z_informacja_o_braku_miejsca
fi
Jeśli ilość wolnego miejsca jest za mała to wysyłany jest mail, do którego będzie dołączony tekst z pliku (plik_z_informacją_o_braku_miejsca).

Może być też tak, że wyśle jakiś tekst zapisany już w skrypcie ale nie wiem jak to napisać.

Może po prostu:

Kod: Zaznacz cały

mail -s "uwaga krytyczna ilość wolnego miejsca na dysku" mój_adres@email.com
Tak?
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Tak w ogóle, to przeczytałeś i przerobiłeś jakiś kurs basha?
szefooo pisze:Pobierz z pliku wpisane, 400 czyli minimum wolnego miejsca.
Zapisz ją jako zmienną a. Jak?
Tworzysz plik w którym będą zmienne:

Kod: Zaznacz cały

VAR1=cos1
VAR2=cos2
VAR3=cos3
W skrypcie importujesz ten plik:

Kod: Zaznacz cały

#/bin/sh

. plik_ze_zmiennymi
#dostępne są już ${VAR1}, ${VAR2} ...
szefooo pisze:Sprawdzam aktualną ilość wolnego miejsca na dysku.

Kod: Zaznacz cały

df -h
Ile masz partycji? Można to różnie rozwiązać, zależy czy masz jedną partycję czy więcej. No i co dokładnie chcesz pobrać z df?
szefooo
Posty: 3
Rejestracja: 03 czerwca 2010, 18:25

Post autor: szefooo »

Czytałem takie skromne poradniki w internecie ale takie konkretne operacje na plikach to są tylko na forach.
Wiadomo najlepiej się uczy na przykładach.

Chcę pobrać ilość zajętego lub wolnego miejsca z jednej partycji żeby później sprawdzić, czy na dysku jest mniej wolnego miejsca niż 400MB.
Jeżeli będzie mniej to powinien się wysłać e-mail informujący mnie, że miejsce się kończy.
Tworzysz plik w którym będą zmienne:

Kod: Zaznacz cały

VAR1=cos1
VAR2=cos2
Tego właśnie nie wiedziałem że zmiennym się przypisuje wartości już w pliku. Jeśli dobrze rozumiem -> VAR1=400
Chciałem to zrobić w skrypcie.
Takie przyzwyczajenie z C++.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Napisałeś, że chcesz mieć zmienne zdefiniowane w osobnym pliku, aby móc je wykorzystać w innym celu. Równie dobrze zmienne możesz zdefiniować bezpośrednio w skrypcie.
Proponuję jednak poczytać co nie co, np. TO i przećwiczyć.
szefooo
Posty: 3
Rejestracja: 03 czerwca 2010, 18:25

Post autor: szefooo »

Właśnie potrzebuję aby zmienne były w pliku żeby różne osoby mogły to zmieniać.
Nie chce żeby mi ktos później grzebał w skrypcie.

Już się biore za lekturkę.
Dzięki!
ODPOWIEDZ