Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [bash] sprawdzanie wielkości pliku
Athlan
post 18.02.2009, 15:02:17
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Witam, ostatnio napisałem mały rogram w bashu, który ma za zadanie restartować apache, gdy ten nie odpowiada:

Kod
#!/bin/bash

TEMP_PATH='/tmp/CheckApache.tmp'
rm -f "$TEMP_PATH"
wget 'http://example.com/ping.php' -T 10 -t 2 -O "$TEMP_PATH"

if [ -e "$TEMP_PATH" ]
then
  echo 'Srv Status: OK';
  rm -f "$TEMP_PATH"
else
  echo 'Srv Status: FAILED';
  /etc/init.d/apache2 restart
fi


W momencie, gdy serwer działa, wynik (response body) zapisywane jest w /tmp/CheckApache.tmp i zaraz po tym (gdy plik istnieje) usuwane.

Problem polega na tym, że gdy serwer nie odpowiada (timeout lub próba połączenia jest przerwana dwukrotnie) linia 6 programu zwraca pozytywny wynik i nigdy nie uruchamia się to, co jest po else.

Co zrobić, żeby wynik wget nie zapisywał się do pliku, gdy akcja nie powiodła się, lub jak sprawdzić długość (wielkość) pliku CheckApache.tmp?

Jeżeli byłaby równa 0 - akcja nie powiodła się, a serwer by się poprawnie zrestartował.


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:39