Seu script awk
:
awk "{system("/usr/sbin/conntrack -D --orig-src $1 --orig-dst" substr($6,5) "-p tcp --orig-port-src " substr($7,7)" --orig-port-dst 80")}"
O script tem um problema com as citações:
O script está entre aspas duplas e também usa aspas duplas. As aspas duplas internas causarão problemas.
A solução é escrever o script entre aspas simples ( awk
scripts devem estar sempre entre aspas simples, de forma que $0
etc. não seja interpretado pelo shell):
awk '{system("/usr/sbin/conntrack -D --orig-src " $1 " --orig-dst " substr($6,5) " -p tcp --orig-port-src " substr($7,7) " --orig-port-dst 80")}'
Você também pode mover facilmente as duas últimas chamadas grep
que está fazendo para o script awk
:
awk '/ESTAB/ && /dport=80/ {system("/usr/sbin/conntrack -D --orig-src " $1 " --orig-dst " substr($6,5) " -p tcp --orig-port-src " substr($7,7) " --orig-port-dst 80");}'
E com um pouco mais de trabalho, você pode conseguir o primeiro também:
awk -v arg1="$1" 'match($0, arg1) && /ESTAB/ && /dport=80/ {system("/usr/sbin/conntrack -D --orig-src " $1 " --orig-dst " substr($6,5) " -p tcp --orig-port-src " substr($7,7) " --orig-port-dst 80")}'