分享一个工作中使用的脚本
服务器每天都会产生大量的日志文件,这些日志文件慢慢的会占满服务器的空间,所以需要定时去清理一下,下面是用Python写的一个清理昨天日志的脚本
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import datetime
import re
# 定义要扫描的文件路径
logs = [
'/usr/Application/tomcat7/logs',
'/usr/Application/tomcat8/logs',
'/tmp'
]
# 获取昨天日期,可自定义格式
yesterday = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y-%m-%d")
# 清理日志的主函数
def cleanLog(path):
files = os.listdir(path)
for fileDir in files:
yesterdayFile = re.search(yesterday, fileDir)
if yesterdayFile:
os.system('rm -rf ' + path + '/' + fileDir)
#
if __name__ == "__main__":
for path in logs:
cleanLog(path)
主要的几个命令是:
获取昨天日期的格式化后的字符串
yesterday = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y-%m-%d")
这个需要引入import datetime
使用正则表达式匹配对应的文件
re.search(yesterday, fileDir)
这个search方法会查找字符串里面匹配的字符串,查找不到会返回一个None对象
执行删除命令
os.system('rm -rf ' + path + '/' + fileDir)
这里是直接执行的rm命令,其实也可以换成gzip命令。
os.system('gzip ' + path + '/' + fileDir)
这样就可以把日志文件压缩,从而大大节省服务器的空间。
最后把这个放到Linux的crontab定时任务里,每天凌晨执行即可。
05 00 * * * /usr/bin/python /usr/script/cleanLogsFile.py
本文同步发在微信公众号上,感兴趣的可以关注一波