linux日志定时删除

服务器存储占用过大可从两个方面进行排查原因:

一,系统生成日志占用过大;

二,废弃的服务没有被kill也有所影响;

下面是删除日志的步骤整理

1,查找超大文件

可使用命令查找:

find . -type f -size +800M  -print0 | xargs -0 du -hm | sort -nr

通过该命令可以找到大文件;

也可以使用命令查找大文件夹:

du -hm --max-depth=2 | sort -nr | head -12

找到大文件夹后可以定位到对应的日志文件夹;

然后可以使用命令查看各个日志文件大小:

du -sh ./*
找到大文件日志文件,确定了占用空间过大的源头;

可以使用定时任务对日志进行定时清理;

2,定时清理日志脚本

可以通过linux的crontab定时任务管理调用清理日志脚本进行定时清理日志;

新建文件夹:

mkdir /home/work/cleanlog
新建脚本:

touch /home/work/cleanlog/dellogutil.sh
编辑脚本:

vi /home/work/cleanlog/delutil.sh
这里清理日志脚本比较简单,实现可以配置文件地址,清理掉超10天过期日志

#!/bin/sh
#删除输入路径下的修改时间在30天以前的日志文件
find $1 -mtime +10 -name "*log*" -exec rm -f {} \;
再新建一个清理任务调用delutil.sh脚本

#!/bin/bash
/home/work/cleanlog/dellogutil.sh "/opt/log/xx"
3,启动定时任务
可使用命令编辑linux定时任务

crontab -e
编辑定时任务,凌晨0点10分调用清理日志脚本

10 0 * * * /home/work/cleanlog/dellogs.sh
然后开启定时任务(不同环境下命令可能不同)

service crond start


4,注意点:

(1)写完脚本应该立即使用进行检查,看看能不能删

(2)注意文件位置可能出错

(3)crontab的cron配置跟平时其他系统不太一样,注意区别






猜你喜欢

转载自blog.csdn.net/sky_jiangcheng/article/details/78294173