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

半兽人 发表于: 2025-01-22   最后更新时间: 2025-01-22 11:57:33  
{{totalSubscript}} 订阅, 17 游览

找出来超过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: {}"' \;

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

更新于 2025-01-22
在线,4小时前登录

查看Linux更多相关的文章或提一个关于Linux的问题,也可以与我们一起分享文章