返回到文章

采纳

编辑于 3月前

Linux清理日志超过1G的命令

Linux
磁盘

找出来超过1个G的,并清理

你可以使用以下命令清理日志文件中大小超过 1GB 且带有日期的文件(保留未带日期的日志文件):

find . -type f -name '*2024*.log' -size +1G -exec rm -v {} \;

说明:

  1. find .
    搜索当前目录及其子目录中的文件。

  2. -type f
    仅匹配文件。

  3. -name 'rm-front-*2024-*.log'
    匹配带日期格式的日志文件(rm-front-YYYY-MM-DD.log)。

  4. -size +1G
    查找大小超过 1GB 的文件(+1G 表示大于 1GB)。

  5. -exec rm -v {} \;
    对找到的文件执行 rm 命令,并使用 -v 输出删除的文件名。

如果你也想清理 2025 年的日志:

可以使用如下命令:

find . -type f \( -name '*2024*.log' -o -name '*2025*.log' \) -size +1G -exec rm -v {} \;

注意事项:

  • 请在运行前检查匹配的文件是否正确,可以先用以下命令预览:
    find . -type f -name '*2024*.log' -size +1G
    
  • 如果确认无误,再执行删除命令。

找出来超过1个G的,并设置为空

第一步:找出超过 1GB 的 .log 文件,并显示文件大小

find . -type f -name '*.log' -size +1G -exec du -h {} \;

示例输出:

2.1G ./rm-front-2024-11-11.0.log
1.5G ./error.log

第二步:确认无误后,清空这些文件的内容

将以上命令筛选出的文件逐个清空内容:

find . -type f -name '*.log' -size +1G -exec sh -c 'echo "" > "{}"; echo "Cleared: {}"' \;

说明:

  1. 每个文件内容会被清空。
  2. 输出已清空的文件路径。

合并步骤(可选)

如果需要同时显示文件大小并清空,可以用以下命令:

find . -type f -name '*.log' -size +1G -exec sh -c 'du -h "{}"; echo "" > "{}"; echo "Cleared: {}"' \;

这个命令会先显示文件大小,然后清空内容,同时确认已清空的文件路径。