版权声明:您的关注和评论, 是笔者持续创作最大的动力^_^ https://blog.csdn.net/zongf0504/article/details/90020982
在生产环境中, 应用日志数量是比较庞大的,通常我们会根据日志文件的时间进行归档或清理。 笔者写了一个简单的根据日志创建天数来清理日志的脚本. 可以在此基础上进行扩展,根据文件名, 创建时间, 最后修改时间等综合判断.
1. 脚本
脚本名称: clean-log, 接收两个参数:
- 第一个参数: 日志目录
- 第二个参数: 天数, 清理多少天之前的日志
#!/bin/bash
#Desc 清理过期日志
#Auth zongf
#Date 2018-11-06
# 日志目录
log_dir=$1
# 超过多少天的日志会被清理
old_days=$2
# 当前时间(秒)
time_now=`date +"%s"`
# 期限
limit=$((3600*24*$old_days))
# 获取所有文件
files=`ls $log_dir`
for file in $files
do
time_chg=`stat -c %Y $log_dir/$file`
time_btn=$(($time_now - $time_chg))
if [ $time_btn -lt $limit ]; then
echo "$log_dir/$file"
fi
done
2. 执行
通常会将clean-log这种清理日志的脚本设置为定时任务, 可以借助于Linux 自带的cron 或配合jenkins 等工具使用.
# 清理/opt/logs 目录下超过90的日志文件
./clean-log /opt/logs 90