Ten blog nie jest już rozwijany. Wraz ze wszystkimi artykułami zostały przeniesiony pod adres wmroczkowski.pl

Czy chcesz przejść pod nowy adres?

niedziela, 19 lipca 2009

Wysyłanie powiadomień przez program CRON

Kontynuując poprzedni wątek chciałbym pokazać jak za pomocą programu CRON można pocztą wysyłać różnego rodzaju powiadomienia.

Poniżej znajduje się skrypt, który każdego dnia będzie do użytkownika wysyłał pocztą informację na temat aktualnego użycia dysku:

0 0 * * * echo -e "To jest :\n\n `df -h`" | mail -s 'Raport o dysku dla `hostname` z dnia `date`' user@mail.pl

Tutaj korzystamy z polecenia echo, które tworzy treść wiadomości. Raport jest tworzony za pomocą polecenia df, które wyświetla ilość wolnego miejsca na dysku. Następnie wiadomość jest przesyłania poleceniem mail w którym dodatkowo używamy pleceń date i hostname aby utworzyć temat wiadomości.

Oczywiście takie rozwiązanie jest jak najbardziej prawidłowe jednak ma pewną wadę. Przy wielu takich wpisach plik crontab stanie się bardzo nieczytelny. Lepszym rozwiązaniem jest utworzenie zewnętrznego skryptu, który za pomocą crontab będzie wykonywany.
Analogicznie dla powyższego przykładu nasz skrypt będzie miał następującą treść:

#!/bin/bash
echo -e "Podsumowanie wykorzystania dysków:\n\n `df -h`" | mail -s 'Raport o dysku dla `hostname` z dnia `date`' user@mail.pl


Wystarczy zapisać skrypt np. w /home/user/raport.sh i dodać następujący wpis do crontab:

0 0 * * * test -x /home/user/raport.sh || exit 0; /home/user/daport.sh

Polecenie test -x sprawdza czy plik istnieje i czy jest wykonywalny. Jeżeli by się okazało, że nie jest to nie zostanie podjęta próba jego uruchomienia przez system. Dzięki temu nie będą nas dręczyć niepotrzebne komunikaty o błędach.

Brak komentarzy: