使用shell脚本给日志文件瘦身
2023-12-14 22:08:47
一、前言
后台系统运行久了,日志文件的体积日渐增多,除了使用常用的日志框架如logback对日志进行按天打印、按大小分割等方式外,还可以使用shell命令来对大日志进行瘦身。
本篇使用sed
指令来对文件进行操作,具体操作如下:
二、步骤
2.1 创建脚本文件
首先在你需要的目录创建一个shell脚本,取名clean_log.sh
touch clean_log.sh
2.2 编辑内容
对这个文件进行编辑
vim clean_log.sh
然后把下面的内容复制进去
#!/bin/bash
# 只对日志行数大于这个值的文件进行操作
limit=50000
LOG_PATH='/home/xxx/logs'
# 遍历目录里面的log日志
for file in $LOG_PATH/*.log
do
# 统计日志文件的行数
total_lines=$(wc -l < $file)
if [ "$total_lines" -gt "$limit" ];then
echo "$file"
echo "lines: $total_lines"
# 计算需要删除的行数,即总行数的80%
lines_to_delete=$(echo "$total_lines * 0.8" | bc)
# 四舍五入取整,如果lines_to_delete有小数点会无法执行
lines=$(printf "%.0f" $lines_to_delete)
echo "delete: $lines"
# 使用sed命令删除前80%的行数
sed -i "1,${lines}d" $file
fi
done
保存,然后对这个脚本进行授权
2.2 授权
chmod 755 clean_log.sh
2.3 执行
./clean_log.sh
三、效果
效果如下:
文章来源:https://blog.csdn.net/tiantang_1986/article/details/135004013
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!