gpt4 book ai didi

linux - 从无尽的管道狂欢中阅读

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:21 27 4
gpt4 key购买 nike

<分区>

我想创建一个脚本,为第一行接收管道的每一行运行另一个脚本。像这样:

journalctl -f | myScript1.sh

这个 myScript1.sh 将像这样运行另一个:

./myScript2.sh $line_in_pipe

我发现的问题是我测试的每个代码都在有限管道中运行良好(直到 EOF)。但是,当我通过管道传输诸如 tail -f 或其他程序时,它就不会执行。我认为它只是等待 EOF 执行循环。

编辑:无尽的管道是这样的:

tail -f /var/log/apache2/access.log | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | script_ip_check.sh

所以 script_ip_check.sh 的想法是做这样的事情:

#!/bin/bash

for line in $(cat); do
echo "process:$line"
nmap -sV -p1234 --open -T4 $line | grep 'open' -B3 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' >> list_of_ip_mapped &
done

对于每一行,在本例中为 IP,我将生成一个 nmap 线程来扫描该主机上的特殊内容。我将使用它来扫描尝试连接我服务器上某些“隐藏”端口的 IP。所以我的脚本必须一直运行,直到我取消它或它收到 EOF。

编辑 2:我刚刚发现 grep 刷新了它的缓冲区,所以这就是它不工作的原因。我使用 --line-buffered 强制 grep 在处理时输出每一行。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com