Linux——find -exec echo命令使用及修改——复盘记录

Linux日志清理:find命令结合exec的实践
本文记录了一位工程师在Linux服务器上清理日志文件的过程。起初,由于日志文件的修改时间问题和删除后进程占用空间,导致定时任务无法有效清理。经过转折,他采用了find命令结合重定向和truncate命令来解决,最终实现自动清理并附带了查找已删除文件相关进程的方法。

   服务器有个调度任务,每天会产生大量日志,一直采用人工删除方式。
   查看服务器脚本后发现有个定时删除任务:
      逻辑是:每天删除一次三天前修改的日志,即以文件的修改时间为判断条件。
      现实是:
    1. 每天写日志时会关联之前的日志,导致之前产生的日志的修改时间一直是当天,无法成功删除。
    2. 另一个问题是,采用rm -rf命令删除,删除文件后,进程未释放占用空间,依然需要手动 kill 进程。

解决思路

    一开始的思路是,写个JAVA脚本自动去删除文件,清理进程。难点在于,我对Linux不熟悉,一开始不知道怎么去判断删除文件后的进程(服务器上还有别的已删除文件进程需要保留)。遂作罢。

转折点

在查找清理大文件日志的情况下,发现有博主建议用重定向文件流的方式去清理大文件日志。一番试用后决定采用echo 1 > '文件名'这种方式来清理日志文件。

难点1

因为日志文件的命名方式是XXX_日期。有序排列。一开始想的是根据文件名这样的格式去判断三天前的日志。后发现用find命令去做匹配不太好做。
最后改为用find命令通过文件大小去拿日志文件名

find / -size +100G 

遗留问题1

如果一天输出的日志超过了100G,咋办。日志是要保留前一天的文件。

难点2

find
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值