Hej Koledzy, potrzebuje pomocy z bashem.
W sieci chcemy korzystać z ipsec, (wizanie ip&mac) niestety program nie pozwala na dyamiczne wiaznie, za kazda zmiana nalezy tworzyc nowa tablice i podmieniac ja za stara.
Wpadłem na pomysł, by oprzec tworzenie o zapis do pliku w postaci
do skryptu wstrzykujemy dane wejściowe IP%MAC
następnie skrypt:
- sprawdza czy takie IP%MAC wiązanie istniej
- Jeśli istnieje oznacza ze nie musi przeładowywać ipsec i kończymy skrypt
- Jeśli nie istnieje wiązanie IP%MAC:
-Szukamy czy istnieje sam adres IP%, ponieważ nie może istnieć w tabeli dwa wpisy dla jednego ip,- jeżeli znaleźliśmy, wiemy ktora to linia dzieki (grep -n) podstawiamy nowa linie w miejsce starej
- jeżeli nie znaleźliśmy IP% wtedy dodajemy na koniec pliku nowa linie z wpisem
o ile w delphi napisanie takie kodu zajęłoby mi 30 sek o tyle w bashu jest dla mnie ciężej, gdyż rzadko z niego korzystam, a teraz muszę wprowadzić obsługę ipsec..
plik na który będziemy operować ma takie wartości
/etc/ipmac
ipset -A wpuszczanimac 192.168.0.1%00:01:02:03:05:06
ipset -A wpuszczaniip 192.168.0.1
ipset -A wpuszczanimac 192.168.0.2%07:17:DF:0a:0b:0c
ipset -A wpuszczaniip 192.168.0.2
ipset -A wpuszczanimac 192.168.0.3%07:08:12:DC:0b:5F
ipset -A wpuszczaniip 192.168.0.3
Założenie jest proste:
Chce w bashu zrobić edycje pliku, znaleźć ciąg jeśli istnieje podmienić go na nowy ciąg (w przypadku zmiany mac), a jeśli nie istnieje chce go dodać...