Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest poniedziałek, 23 czerwca 2025, 13:03

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 9 ] 
Autor Wiadomość
Post: niedziela, 19 lutego 2006, 20:43 
Offline
Użytkownik

Rejestracja: niedziela, 1 sierpnia 2004, 00:03
Posty: 189
Lokalizacja: Trzebnica
Witam

Potrzebuje napisać prosty skrypt

Mam plik np. /etc/klienci

nr:1 nazwisko:koza port:6677 id:343 ip:192.168.1.100
nr:2 nazwisko:dedek port:6678 id:322 ip:192.168.1.120

i plik wykonywalny np. /etc/blokada

i np uruchamiam plik blokada z parametrem -2

./blokada -2

to plik żeby wykonał operacje

iptables INPUT -p 6677 -a drop <- wiem że źle ale to nie ważne
echo koza

Nie potrzebuje tego skryptu do tego celu to tylko przykład !!!!

co musze napisać za 6677 żeby skrypt odczytał tą wartość z pliku /etc/klienci z 2 lini z sekcji port: i nie cztrał delej sekcji id i ip ????

_________________
Pentium III 500/512, 128Mb/PC133, 8,3Gb, DSL 1024/256,
11 userów

Update: 10.05.2006
Pentium III 700/256, 338Mb/PC133, 80 Gb, DSL 2Mbit/s / 256kbit/s,
16 userów


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 19 lutego 2006, 21:20 
Offline
Użytkownik

Rejestracja: niedziela, 1 sierpnia 2004, 00:03
Posty: 189
Lokalizacja: Trzebnica
w dosie była bałwan jestem

find "port:" ale ona wyświetlała wszystko do końca linijki.

_________________
Pentium III 500/512, 128Mb/PC133, 8,3Gb, DSL 1024/256,
11 userów

Update: 10.05.2006
Pentium III 700/256, 338Mb/PC133, 80 Gb, DSL 2Mbit/s / 256kbit/s,
16 userów


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 19 lutego 2006, 22:47 
Offline
Użytkownik

Rejestracja: czwartek, 3 października 2002, 16:23
Posty: 271
Lokalizacja: Częstochowa
polecenie: cat /etc/klienci | grep "koza" | awk '{print $3 }' | sed 's/port://g'

Może cie nakieruje.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 19 lutego 2006, 22:57 
Offline
Użytkownik

Rejestracja: niedziela, 1 sierpnia 2004, 00:03
Posty: 189
Lokalizacja: Trzebnica
zaraz będe to testował ale co to "awk '{print $3 }' | sed 's/port://g'" mniej więcej oznacza

Ps. wiem że to łatwe pytanko ale nie mam czasu sprawdzać
czym się różnią #/bin/sh od #/bin/bash <- to akurat potrzebuje do tunera philipsa 6010 do którego uclinux'a jakiegoś starego wgrałem

_________________
Pentium III 500/512, 128Mb/PC133, 8,3Gb, DSL 1024/256,
11 userów

Update: 10.05.2006
Pentium III 700/256, 338Mb/PC133, 80 Gb, DSL 2Mbit/s / 256kbit/s,
16 userów


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 19 lutego 2006, 23:04 
Offline
Użytkownik

Rejestracja: czwartek, 3 października 2002, 16:23
Posty: 271
Lokalizacja: Częstochowa
awk '{print $3 }' Ciąg znaków podzieli (znakiem dzielącym jest spacja) i zrobi tak jakby tablice gdzie właśnei 3 elementem będzie ciąg port:6677.

sed 's/port://g' To z kolej zamieni ciag "port:" na null czyli usunie ten ciąg.

To oczywiście takie moje tłuamczenie. WIęcej znajdziesz w manualach.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 20 lutego 2006, 00:38 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
puchatek007 pisze:
awk '{print $3 }' Ciąg znaków podzieli (znakiem dzielącym jest spacja)


póki nie zastosowana jest opcja -F znakiem dzielącym jest dowolna ilość spacji lub tabulatorów.

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 20 lutego 2006, 00:46 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
puchatek007 pisze:
polecenie: cat /etc/klienci | grep "koza" | awk '{print $3 }' | sed 's/port://g'

Może cie nakieruje.


to oczywiście zadziała... ale - cztery procesy zamiast jednego. Jak już używasz awk to pozostałe nie są ci potrzebne. A szczególnie użycie cat, grep i awk razem mija się z celem.

awk '/koza/ {print$3}' /scieżka/plik | sed 's/port\://'

bez bicia przyznaję, że nie pamiętam jak podmienić ciągi znaków w awk (stąd pozostawiony sed), ale da się i całe wyrażenie robi się o wiele prostsze.
W ogóle używanie 'cat' w scriptach zazwyczaj jest błędem...

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 20 lutego 2006, 00:58 
Offline
Użytkownik

Rejestracja: niedziela, 1 sierpnia 2004, 00:03
Posty: 189
Lokalizacja: Trzebnica
Wielkie dzięki miś

_________________
Pentium III 500/512, 128Mb/PC133, 8,3Gb, DSL 1024/256,
11 userów

Update: 10.05.2006
Pentium III 700/256, 338Mb/PC133, 80 Gb, DSL 2Mbit/s / 256kbit/s,
16 userów


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 20 lutego 2006, 02:53 
Offline
MODERATOR

Rejestracja: poniedziałek, 27 stycznia 2003, 23:39
Posty: 3065
Lokalizacja: Kraków/Częstochowa
: [/] [] ()
awk '/koza/ sub(/port:/, "") {print$3}'

_________________
Ten post Ci pomógł? Zaznacz go jako pomocny .


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 9 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl