服务器存储占用过大可从两个方面进行排查原因:
一,系统生成日志占用过大;
二,废弃的服务没有被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配置跟平时其他系统不太一样,注意区别