Linux 使用netcat和grep有条件地运行命令

Linux 使用netcat和grep有条件地运行命令,linux,bash,grep,command,netcat,Linux,Bash,Grep,Command,Netcat,我需要netcat监听输入HTTP请求,根据请求,我需要运行脚本 到目前为止,我有这个 netcat -lk 12345 | grep "Keep-Alive" 所以每次netcat收到包含“keep alive”的包时,我都需要启动一个脚本 它需要在crontab中运行 谢谢你的帮助 这个怎么样 #!/bin/bash netcat -lk -p 12345 | while read line do match=$(echo $line | grep

我需要netcat监听输入HTTP请求,根据请求,我需要运行脚本

到目前为止,我有这个

netcat -lk 12345 | grep "Keep-Alive"
所以每次netcat收到包含“keep alive”的包时,我都需要启动一个脚本

它需要在crontab中运行

谢谢你的帮助

这个怎么样

    #!/bin/bash

    netcat -lk -p 12345 | while read line
    do
        match=$(echo $line | grep -c 'Keep-Alive')
        if [ $match -eq 1 ]; then
            echo "Here run whatever you want..."
        fi
    done
将“echo”命令替换为要执行的脚本。

如何:

#!/bin/bash
netcat -lk -p 12345 | grep 'Keep-Alive' | while read unused; do
    echo "Here run whatever you want..."
done


根据客户端的情况,它可能会坐在那里等待netcat/服务器响应

我做了与上面类似的事情,但使用了

while true do
   netcat -l 1234 < 404file.txt
为true时执行
netcat-l 1234<404file.txt
其中
404file.txt
具有
HTTP/1.1 404
文件未找到


这会断开客户机的连接,由于netcat没有“k”,它会终止并重新启动,因为while为true,所有这些都准备好再次接收和发送404。

您希望侦听传入请求的频率是多少?超级!,就这样!,谢谢。在crontab中我需要两个这样的脚本,没问题吧?@Lectere这很好,在if块中可以添加所有需要的命令。
if[$line=~Keep Alive];然后。。。如果echo“$line”| grep-q“Keep Alive”,fi
也应该同样有效;然后Hmm。。这也是我喜欢的。于是补充了答案。除此之外,@wooghie的回答同样不错
while true do
   netcat -l 1234 < 404file.txt