[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Programmeringsproblemet



Stig Andersson wrote:
> 
> Till er som undrar hur jag gjorde.
> Har ni andra lösningar som är smartare så tar jag gärna emot dessa.
> 
> Det finns en nackdel som jag inte hittat någon lösning på, med mina kunskaper.
> När en av dom adresserna som ligger i filen "host.god" byter IP så stängs brandväggen för alla i "host.god"
> för att strax därefter öppnas för alla. Om jag på något sätt kund ta host för host och jämföra och bara
> ändra för just den host som har bytt ip, då skulle jag vara nöjd.
> Scripten körs i en ramdisk på en router utan hårddisk och som startas upp med diskett.
> Dist för routern är "freesco" och innanför den finns 4 andra maskiner som man kan koppla upp sig till om man har
> en dyndns klient och adressen finns med i "host.god".
> 

Hej Stig,

har ingen aning om hur freesco hanterar sina (host) regler, men jag
antar att du kan plocka bort och lägga till individuella ipnummer?  Då
borde det enklaste (vilket givetvis är individuellt) vara att skapa en
fil i första steget (där du nslookup/host-ar dem) enl:
	xxx.xxx.xxx.xxx	yyy.yyy.yyy.yyy

där  xxx  är det gamla ipnummren och  yyy  de nya.  Sedan gör du bara en
loop över denna fil som både plockar bort gamla och lägger till nya i
samma varv.  Är du begränsad till bash eller finns (någon) awk på
maskinen?

Hmm, fast igentligen kan du ju lika gärna göra även uppslagningen i
dns-samma steg, så slipper du fillhanteringen helt och hållet...

// Emil




> Detta är min script som körs var 5 minut av cron:
> #!/bin/sh
>     rm /mnt/ram2/ip.new
>     #Loopen skapar en ny "ip.new"
>     for i in `cat /mnt/ram2/host.god`; do
>         nslookup "$i" > /mnt/ram2/ip.temp
>         for j in `cat /mnt/ram2/ip.temp`;do
>         done
>         echo "$j" >>/mnt/ram2/ip.new   # "j" innehåller här ip nummert
>     done
>     T1=`cat /mnt/ram2/ip.new`
>     T2=`cat /mnt/ram2/ip.old`
>     if [ "$T1" = "$T2" ]; then
>         exit
>     else
>         for i in `cat /mnt/ram2/ip.old`; do
> 
>                 #Här stänger jag portarna för det GAMLA ip nummert
> 
>         done
>         for j in `cat /mnt/ram2/ip.new`; do
> 
>                 #Här öppnar jag portarna för det NYA ip nummert
> 
>         done
>     fi
> 
>     cp /mnt/ram2/ip.new /mnt/ram2/ip.old
> 
> --
> To UNSUBSCRIBE, email to debian-user-swedish-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: