gpt4 book ai didi

linux - Linux 中日志频繁轮转时如何复制所需的日志文件内容

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:40 25 4
gpt4 key购买 nike

假设一些日志的大小各为 50MB。我“grep”了一些字符串,我的字符串存在于日志文件 log_3 中,我想在 log_3 旋转(重命名)到 log_4 之前复制 log_3 的内容。请建议如何在轮换之前备份 log_3 的内容。我只需要 log_3 的内容。我不想像我复制 log_3 (通过 cp -p log_3 log_3_backup)一样,但那时日志已轮换,现在 log_3_backup 包含 log_2 的内容。有什么方法可以避免这种情况。在从事自动化项目时,我需要一个解决方案。非常感谢您提前提出的建议。您可以分享 python 或 shell 脚本。

最佳答案

可以获取重命名后不会改变的文件 inode 编号,然后通过该名称引用该文件

for f in *.log; do
# get inode of file
iname=$(ls -i $f)
# test file contents for pattern presence
if grep -q 'some pattern' $f; then
# the file contains the searched pattern, let's do something
# find by inode number and move it
find -inum $iname -exec mv {} {}.bak ';'
fi
done

也许不再需要文件备份,让我们再次 grep 一下

find -inum $iname -print0 | xargs -r0 grep 'some pattern'

关于linux - Linux 中日志频繁轮转时如何复制所需的日志文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50377456/

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