#!/bin/bash
#
# per rispettare la precisione richiesta è sufficente mettere questo script in cron ogni minuto
# * * * * * /path/to/timeout.sh


# formato di iptables -vnL
# 1274  1854933 ACCEPT     tcp  --  *      bond1   212.239.43.38        137.204.57.118      tcp spt:1081
#
# prendo direttamente solo le righe che non hanno il primo campo a zero
# 
iptables -Z -vnxL FORWARD | egrep '^[[:space:]]*[123456789]+' | while read pkts bytes target proto opts intin intout srcip destip proto2 ports ; do
	DPT=$(echo $ports | cut -f2 -d:)
	atrm $(cat /tmp/timer_$srcip_$destip_$DPT)
	echo "/root/openclose.sh D $srcip $destip $DPT" | at now + 5 minutes 2>&1 | grep ^job | awk '{ print $2 }' > /tmp/timer_$srcip_$destip_$DPT
done