在业务系统中会产生很多相关的日志文件,比如应用的访问日志、程序运行日志和系统等相关日志,日志在一定的时间内非常重要,作为查找问题的关键切入点,但是时间长的日志就没有价值了,就需要在系统中进行删除。
Linux系统文件有三个时间戳分别为Access time、Modify time、Change time,即atime、mtime、ctime。
Atime 对文件进行一次读操作,它的访问时间就会改变,比如cat、more等操作,但是stat不会影响这个时间变化;
Mtime 文件的内容被最后一次修改的时间,比如vim操作;
Ctime 当文件的状态被改变的时候,比如权限、用户组等操作,都会改变这个时间;
查找30天之前的访问日志并进行删除操作;
![Shell脚本100例:6 使用mtime删除历史文件或日志文件](http://p2.ttnews.xyz/loading.gif)
脚本信息:
#!/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删除历史文件或日志文件](http://p2.ttnews.xyz/loading.gif)
閱讀更多 運維小筆記 的文章