Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Pomoc przy skrypcie
http://forum.freesco.pl/viewtopic.php?f=22&t=16934
Strona 1 z 1

Autor:  tassman [ środa, 4 czerwca 2008, 14:52 ]
Tytuł:  Pomoc przy skrypcie

taki maly skrypcik ulatwiajacy mi zycie napisalem:
======================================
#!/bin/bash

if [ "$1" = "help" ]; then
echo "przypominacz V0.1 2007-04-30 (C) tassman 2006 dla NND"
echo "Włączanie i wyłączanie przypominania"
echo "--------------------------------------------"
echo "Uzycie:"
echo "przypomnienie parametr1 parametr2"
echo "parametr1 -> start stop check help"
echo "parametr2 -> 4 kwartet IP"
echo " "

elif [ "$1" = "start" ] && [ "$2" ]; then

echo "Przypomnienia wlaczone dla 192.168.1.$2"
iptables -A PREROUTING -t nat -s 192.168.1.$2 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:82 -m limit --limit 60/h --limit-burst 1
echo " "

elif [ "$1" = "check" ]; then

echo " "
echo "Uzytkownicy posiadajacy wlaczone przypomnienie"
iptables -t nat -L | grep 82 | awk '{print $4;}'
echo " "

elif [ "$1" = "stop" ] && [ "$2" ]; then

echo " "
echo "Zatrzymuje przypomnienie dla 192.168.1.$2"
iptables -D PREROUTING -t nat -s 192.168.1.$2 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:82 -m limit --limit 60/h --limit-burst 1
echo " "

else

echo "Wpisales zly parametr"

fi
===========================================
ale, po wlaczeniu go dla kogokolwiek ukazuje sie przypomnienie tylko raz, nastepnie juz nie widac przypomnienia. bardzo prosze profesjonalnym okiem rzucic na moje wypociny

Autor:  Mis' [ środa, 4 czerwca 2008, 22:24 ]
Tytuł:  Re: Pomoc przy skrypcie

tassman pisze:
taki maly skrypcik ulatwiajacy mi zycie napisalem:
[...]
ale, po wlaczeniu go dla kogokolwiek ukazuje sie przypomnienie tylko raz, nastepnie juz nie widac przypomnienia.


Co prawda nie odpowiem dlaczego przypomnienie wyświetla się tylko raz (może zamiast -A powinieneś użyć -I), ale proponuję taka formę tego scriptu:

: [/] [] ()
#!/bin/bash

help() {
   echo "przypominacz V0.1 2007-04-30 (C) tassman 2006 dla NND"
   echo "Włączanie i wyłączanie przypominania"
   echo "--------------------------------------------"
   echo "Uzycie:"
   echo "przypomnienie parametr1 parametr2"
   echo "parametr1 -> start stop check help"
   echo "parametr2 -> 4 kwartet IP"
   echo " "
}

# jeśli podano mniej niż 2 parametry zawsze wyświetlaj help i kończ script
if [ $# -lt 2 ]; then
   help
   exit 1
fi
# jesli pierwszy parametr nie jest start, stop lub check wyświetlaj help i kończ
if [ $1 != start -o $1 !=check -o $1 != stop ]; then
   help
   exit 1
fi
# sprawdzanie czy drugi parametr jest liczba naturalną i czy jest mniejszy od 255,
# jesli któryś z tych warunków nie jest spełniony wyświetl help i zakończ
liczba=`echo $2 | sed 's/[[:digit:]]//g'`
if [ ! -z $liczba ]; then
   help
   exit 1
else
   if [ $2 -gt 255 ]; then
      help
      exit 1
   fi
fi


case $1 in
   start)
      echo "Przypomnienia wlaczone dla 192.168.1.$2"
      iptables -A PREROUTING -t nat -s 192.168.1.$2 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:82 -m limit --limit 60/h --limit-burst 1
     echo " "
   ;;
   check)
     echo " "
     echo "Uzytkownicy posiadajacy wlaczone przypomnienie"
     iptables -t nat -L | awk '/82/ {print $4;}'
     echo " "
   ;;
   stop)
     echo " "
     echo "Zatrzymuje przypomnienie dla 192.168.1.$2"
     iptables -D PREROUTING -t nat -s 192.168.1.$2 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:82 -m limit --limit 60/h --limit-burst 1
     echo " "
   ;;
esac

exit 0


IMHO jest to czytelniejsze niż Twoja wersja z elifami (których nie lubię). a poza tym sprawdza poprawność i liczbę podanych parametrów. Script uwzględnia tylko pierwsze dwa parametry i ignoruje wszystkie nadmiarowe.
Poprawiłem ponadto linię w której w potoku użyłeś grep i awk... awk radzi sobie doskonale z funkcjami grepa i używanie ich w potoku nie ma, zazwyczaj, sensu.

UWAGA!! scriptu nie testowałem! Nie odpowiadam jeśli coś wybuchnie!

Autor:  tassman [ czwartek, 5 czerwca 2008, 08:36 ]
Tytuł: 

Bardzo dziekuje. Widze pare zmiennych o ktorych malo wiem [albo wcale]. Najpierw sie doksztalce a potem wciele w zycie skrypt.

EDIT:
Ale co ciekawe. Po wlaczeniu przypomnienia, pierwsze uruchomenie jest w porzadku [nie wyswietla grafik zrobionych w index.html ale to szegol], po kolejnej minucie juz jest komunikat

404 Not Found
The requested URL '/index.php' was not found on this server.
thttpd/2.25b 29dec2003

i ogloszenia nie ma.

Autor:  JakubC [ czwartek, 5 czerwca 2008, 20:38 ]
Tytuł: 

index.php? php na thttpd?

Autor:  tassman [ czwartek, 5 czerwca 2008, 22:38 ]
Tytuł: 

jest index.html i mam thttpd
ale to w zaleznosci na jakies stronie jestem, zapytanie jakby lecialo przez serwer i szukalo glowej strony danego portalu i widocznie pomija [jakos] stronke na serwerze i wywala komunikat o braku strony na danym portalu.

Autor:  JakubC [ czwartek, 5 czerwca 2008, 23:15 ]
Tytuł: 

Ano. To normalne. Podmień strony błędów w thttpd na Twoją stronę z ogłoszeniem i wszystko będzie działać dobrze.

Autor:  tassman [ piątek, 6 czerwca 2008, 09:35 ]
Tytuł: 

Przyznaje ze po krotkim poszukiwaniu nie bardzo wiem gdzie znajduje sie strona bledow thhtpd. Znalalem rowniez post Mis'a

http://forum.freesco.pl/viewtopic.php?t ... 404+thttpd

instruujacy jak to zrobic. Klopot w tym ze nie bardzo wiem co oznacza stwierdzenie:

1. W głównym katalogu thttpd stwórz katalog: errors

niebardzo rozumiem czy chodzi o /etc/rc.d czy tez o /var/www

Sprubowalem na katalogu /var/www ale nie dalo to naleznego efektu.

Autor:  zciech [ piątek, 6 czerwca 2008, 17:28 ]
Tytuł: 

thttpd -d /to/jest/glowny/katalog/thttpd ......... -p 82 .......


cd /to/jest/glowny/katalog/thttpd
mkdir errors
cp index.html errors/err404.html


UWAGA!!
W IE w konfiguracji
Narzędzia -> opcje internetowe...
zakładka zaawansowane
Trzeba odznaczyć
[] Pokaż przyjazne komunikaty o blędach HTTP

Autor:  JakubC [ piątek, 6 czerwca 2008, 18:03 ]
Tytuł: 

zciech pisze:
UWAGA!!
W IE w konfiguracji
Narzędzia -> opcje internetowe...
zakładka zaawansowane
Trzeba odznaczyć
[] Pokaż przyjazne komunikaty o blędach HTTP

A co się stanie, jak się nie odznaczy?

Autor:  tassman [ piątek, 6 czerwca 2008, 18:14 ]
Tytuł: 

tak, dziekuje. rzeczywiscie pomoglo.

jeszcze jedno pytanie.

w index.html jest prosty teskt i link do obrazka, ktory znajduje sie w tym samym katalogu.

wywolanie strony serwera z przegladarki daje rzadany efekt czyli obrazek i teskt. jednakze wywolane za pomoca regulki iptables znajdujacej sie w skrypcie daje efekt: tekst bez obrazka.

Autor:  zciech [ piątek, 6 czerwca 2008, 18:57 ]
Tytuł: 

JakubC pisze:
A co się stanie, jak się nie odznaczy?


Pokaże się przyjazny komunikat o błędzie HTTP

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/