我有一个单行命令,可以从 Web 服务器访问日志中列出前 10 个最活跃的 IP 地址:
cat access.log | awk '{print $1}' | sort | uniq -c | sort -n | tail -n10
Run Code Online (Sandbox Code Playgroud)
示例结果集(为简单起见只有 3 个条目)将是:
20 12.34.56.7
22 3.67.89.201
29 9.0.203.255
Run Code Online (Sandbox Code Playgroud)
如您所见,计数在 IP 地址之前,两者由空格分隔。计数前实际上也有空格,但我无法在此处显示它们。
我喜欢对 IP 地址进行反向 DNS 查找,使其看起来像这样:
20 12.34.56.7 (d12-34-56-7.abhsia.telus.net)
22 3.67.89.201 (customer.vpls.net)
29 9.0.203.255 (9-0-203-255.hlrn.qwest.net)
Run Code Online (Sandbox Code Playgroud)
如何在不求助于脚本的情况下执行此操作(即坚持使用单行命令)?非常感谢任何建议。
我有一个单行命令,它执行 curl 请求以检查服务器状态,然后将结果输出到日志文件。但问题是返回的结果没有换行符,因此当命令下次写入日志文件时,日志文件会混乱。
curl -s "http://myserver.com/api?param=1¶m=2" | sudo tee -a /var/log/myserver.log
Run Code Online (Sandbox Code Playgroud)
我喜欢将其保留为单行命令。欢迎任何建议。感谢您的时间。