对于给定目录,如何将最近修改的文件的尾部连接到新文件?

对于给定目录,如何将最近修改的文件的尾部连接到新文件?

如果有更好的解决方案,我的目标是能够快速分析 /usr/local/apache/domlogs 中所有最近的 apache 活动。这样做的用处是,当服务器负载达到顶峰时,我想快速查看哪些网站受到攻击(以及哪些 URL),而不必单独 grep/awk domlog 中的所有内容。

例如,我知道我可以在 domlogs 目录中使用以下命令获取最近活动的 apache 访问 domlog 的列表:

find -regex '.*\.\(com\|org\|net\|biz\|info\)' -mmin -1

现在我想做的是将每个文件的尾部 1000 行连接到一个新文件中,以便我可以快速分析它并查看所有流量来自哪里。

答案1

您可以使用-exec选项:

find -regex '.*.(com\|org\|net\|biz\|info)' -mmin -1 \
    -exec tail -n 1000 "{}" >> logs.txt +

现在 domlogs 中每个文件的所有最后 1000 行都写入 file logs.txt,并以文件名分隔。

-exec command {} +告诉find使用找到的文件运行命令,命令行是通过在末尾附加每个文件名来构建的。此选项适用于find管道到 的线路组合xargs

查看更多:

相关内容