Dynamicka iptables pravidla z databaze

Martin Cizek cizek na cmc.hopto.org
Neděle Říjen 24 20:51:29 CEST 2004


DD,

> Dobrý nápad, ale problém je, že ta databáze se plní z web frontendu, a potřebuji,
> aby to zareagovalo pokud možno hned - tj. buď spouštět skript cronem každou minutu
> (ale v tom případě tam bude stejně prodleva průměrně v řádu desítek sekund, a navíc
> to každou minutu bude generovat nějakou zátěž), nebo o dost lepší, ale nevím zda
> vůbec existující řešení, že by ten démon reagoval na eventy z DB serveru a
> aktualizoval to ne v pevných intervalech, ale na základě těchto event.

Stačí vytvořit nějaký synchronizační objekt. Lze použít třeba pojmenovanou
rouru, práva nastavte tak, aby do ní moh zapisovat poze webserver a číst
jí moh pouze onen démon (tzn. asi root).
Démon může být jednoduchý skript:

#!/bin/sh
FIFO=nekde
while true; do
	read < $FIFO  # zde se démon zablokuje
	# Načti změny z databáze
	# Proveď změny databáze
done


Web server po změně provede jen (v řeči shellu)

echo -n '' > $FIFO


Přímým server side skriptováním bych to neřešil -- je to vždy bezpečnostní
riziko.

PS: Nezapomeňte ty tabulky zamykat a myslet na další synchronizační aspekty,
např. že se Vám server-side skript zablokuje na onom zápisu do roury, dokud
ji neotevře démon.

-- 
Martin Čížek
CMC Computers



Další informace o konferenci Linux