Linux下使用find命令删除超期文件时如何记录被删文件日志
操作方案
你可以直接修改原有find命令,在执行删除动作前把待删除文件的路径写入指定日志文件,不需要额外写脚本,两种常用可靠写法如下:
- 基础版:仅记录被删除文件的路径,执行效率高
find ./path/delete -type f -mtime +10 -print -exec rm {} \; > /your/non-clean-path/deleted_files.log
命令里的-print会在执行rm操作前,把所有匹配到的待删除文件路径输出到标准输出,通过重定向写入日志文件,不会出现文件删了但没记录到的问题。
- 增强版:日志带删除时间戳,方便后续溯源排查
find ./path/delete -type f -mtime +10 -exec echo "[$(date +'%Y-%m-%d %H:%M:%S')] 已删除文件: {}" >> /your/non-clean-path/deleted_files.log \; -exec rm {} \;
重要注意事项
存储删除记录的日志文件不要放在./path/delete这类待清理目录下,否则日志文件本身如果满足修改时间超过10天的条件,会被误识别为待删除文件清理掉,建议放在不会被该清理规则扫描到的独立路径下。
另外补充:原命令里的-name '*'属于冗余参数,find默认就会匹配所有文件名,移除该参数不会影响文件匹配结果。
内容的提问来源于stack exchange,提问作者devabc
相关产品推荐
相关产品推荐

