Portál AbcLinuxu, 10. května 2025 04: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.