具体场景:服务器产生的日志量非常大,每天将近100M+的日志量,所以博主写了一个日志的分隔脚本;每隔2小时执行一次,当日志文件超过6M时,将日志进行转存,命名格式为20180917-12.log,这样可以防止单个日志文件过大,打开时非常耗CPU,【曾经测试在linux上打开1G的纯文本文件,2G内存 双核虚拟机几乎崩溃,CPU瞬间飚满;在Windows下更打不开】所以将日志进行切割转存,但由于日志量太大,所以要进行定期清除日志,规则:当所有日志文件超过3G时,删除掉日期最早的日志文件,这样可以保证硬盘空间的相对稳定,也保留最近期的日志文件。具体实现脚本如下:
#!/bin/bash
#log.sh
#获取所有日志文件的总大小,单位M[此处假设,所有日志存在/mnt/log路径下]
size_all=`du -s -m /mnt/log/ | awk '{print $1}'`
date=88888888
#当/mnt的总容量大于200M时,删除最早创建的日志文件
if [[ $size_all -gt 3000]]; then
for i