Portál AbcLinuxu, 28. prosince 2025 22:30
nohup echo 'text' > /tmp/roura & echo 'text' > /tmp/roura & screen -dm echo 'text' > /tmp/rouraProč? Příkaz čeká na vybrání roury.
luke@minitux:~/Desktop> mkfifo roura luke@minitux:~/Desktop> echo "Ahoj" > roura & [1] 24520 luke@minitux:~/Desktop> cat roura Ahoj [1]+ Done echo "Ahoj" > rouraSchválně to ještě zkuste a napište co přesně se stalo...
start cyklu cekani na vypis z roury == pokud vypis z roury je updatedb proved nasledujici: -- aktualizovat seznam -- pokud je seznam mezitim necim upraven, poslat do roury updatedb( a tady to stopne ) konec cyklu
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
while : ; do
if [ ! -e "/tmp/blokovac_getport" ]; then
mkfifo /tmp/blokovac_getport
chmod 660 /tmp/blokovac_getport
chgrp www-data /tmp/blokovac_getport
fi
todo=`cat /tmp/blokovac_getport`
if [ "$todo" = "updatedb" ]; then
echo "updatedb received"
toupdate=`mysql -u$dbuser -p$dbpassword blokovac3 -e 'SELECT \`ip\`, \`internet\` from \`ip\` WHERE \`aktualizovat\` > 0' -s | grep -vw ip`
internet=`iptables -nL blokovac_internet | awk '/DROP/{print $4}' | grep -vw "0.0.0.0/0"`
echo "$toupdate" | while read ip uinternet; do
blokovan_lineSource=`iptables -nL blokovac_internet | grep DROP | nl -w1 -s" " | grep "$ip" | awk '{print $1" "$5}' | grep -vw "0.0.0.0"| awk '{print $1}'`
blokovan_lineDestination=`iptables -nL blokovac_internet | grep DROP | nl -w1 -s" " | grep "$ip" | awk '{print $1" "$5}' | grep "0.0.0.0"| awk '{print $1}'`
blokovan=`echo "$internet" | grep "$ip"`
if [ "$uinternet" = "1" ]; then
if [ "$blokovan" != "$ip" ]; then
echo "blokovat internet na $ip";
iptables -I blokovac_internet 1 -s $ip -j DROP
iptables -I blokovac_internet 1 -d $ip -j DROP
fi
else
if [ "$blokovan" = "$ip" ]; then
echo "povolit internet na $ip";
iptables -D blokovac_internet $blokovan_lineSource
iptables -D blokovac_internet $blokovan_lineDestination
fi
fi
mysql -u$dbuser -p$dbpassword blokovac3 -e "UPDATE \`ip\` SET \`aktualizovat\` = aktualizovat-1 WHERE \`ip\` = '"$ip"'"
done
echo "updatedb finished"
# opakovat dokud neni aktualizovat 0
toupdate=`mysql -u$dbuser -p$dbpassword blokovac3 -e 'SELECT \`ip\`, \`internet\` from \`ip\` WHERE \`aktualizovat\` > 0' -s | grep -vw ip`
if [ "$toupdate" != "" ]; then
echo "updatedb repeat"
echo "updatedb" > /tmp/blokovac_getport &
fi
fi
done
rm /tmp/blokovac_lsport
mkfifo roura
function write_it()
{
echo "$1" >roura
}
while true; do
...
if neco; then
write_it "updatedb" &
fi
...
done
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.