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/ |