Shell脚本100例:6 使用mtime删除历史文件或日志文件

在业务系统中会产生很多相关的日志文件,比如应用的访问日志、程序运行日志和系统等相关日志,日志在一定的时间内非常重要,作为查找问题的关键切入点,但是时间长的日志就没有价值了,就需要在系统中进行删除。

Linux系统文件有三个时间戳分别为Access time、Modify time、Change time,即atime、mtime、ctime。

Atime 对文件进行一次读操作,它的访问时间就会改变,比如cat、more等操作,但是stat不会影响这个时间变化;

Mtime 文件的内容被最后一次修改的时间,比如vim操作;

Ctime 当文件的状态被改变的时候,比如权限、用户组等操作,都会改变这个时间;

查找30天之前的访问日志并进行删除操作;

Shell脚本100例:6 使用mtime删除历史文件或日志文件

脚本信息:

#!/bin/bash

for i in `ls /logs`

do

cd /logs && find $i -type f -mtime +30 -name "*.log" | xargs rm -f

done

关于-mtime的讲解:

-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。

-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。

-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件

-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

Shell脚本100例:6 使用mtime删除历史文件或日志文件


分享到:


相關文章: