这是问题所在。我正在从服务器(centos)中读取访问日志,并使用here中的Sarel Botha的ipv4地址提取grep命令。
由于我的服务器在nohup中运行Java以提供连接,并且所有客户端的ipv4地址均写入nohup.out。
结合使用,如果我跑步
tail -f nohup.out|grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'
然后我会在nohup.out上的新记录之后有一个IP地址列表,例如
111.111.111.111
222.222.222.222
,每个ipv4地址将在一行中输出。
现在,我需要从nohup.out获取每个“ greped”的ipv4地址,并将其发送到n ip地理位置查询API,查询所需的格式为
GET http://example.com/api/json/111.111.111.111
或
curl http://example.com/api/json/111.111.111.111
任何人都可以告诉我如何保存ipv4地址,然后将其用于查询,并使查询输出遵循我的tail -f命令吗?
答案 0 :(得分:0)
您可以将grepped的输出通过管道传递给curl命令,如下所示:
tail -f nohup.out | grep --line-buffered -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' | while read EVERY_IP
do
curl "http://example.com/api/json/${EVERY_IP}";
done
注意:不要忘记在--line-buffered
命令中添加grep
选项
答案 1 :(得分:0)
awk '{print "URL"$0}'
您可以获得类似于URL + ip的字符串 但我不知道如何使用shell查询。
您可以看到以下问题:
How to implement a pythonic equivalent of tail -F?