服务器有时磁盘空间不足,我们需要定位是哪些文件比较大(大部分清空下都是log文件),下面就是一个比较通用步骤来定位和清空:
从根目录起,统计文件夹大小
cd /
du -lh --max-depth=1
cd data
du -lh --max-depth=1
以此类推找到最大的文件,并进行清理。
若发现当前文件夹占比很大,但是du命令出来的文件夹都很小说明是当前文件夹里面存在大文件如下图:
通过 ll 命令可观察到确实存在多个大文件,确认好文件无用即可将其删除
清理文件
一般情况下tmp文件夹下的文件是可以清理的,或者.log文件
如果是日志文件不是当天的,可以考虑直接删除(rm -rf xxx.log)
若日志文件是当天的,如果直接删除可能会导致应用报错甚至崩溃,则可以考虑使用清空内容而不是删除文件的方式进行,如下:
echo "" > xxx.log
Docker容器日志清理
有时docker上面的容器没有设置日志大小,使得日志越来越大最后占满整个磁盘,可以考虑使用下面命令进行清理:
find /var/lib/docker/containers/ -name *-json.log
找到所有docker 容器日志,然后使用echo “” > xxx-json.log命令进行清理,如果日志文件很多可以考虑使用notepad++ shift + alt + 方向键批量添加如下图
查看清理结果
使用以下命令可以查看各个磁盘使用率
df -hl
另外docker容器日志大小设置
services:
zookeeper:
image: zookeeper:3.4.12
container_name: zookeeper
network_mode: "host"
restart: always
logging:
options:
max-size: "1024k"
max-file: "5"
volumes:
- /home/xx/zookeeper/data:/data
- /home/xx/zookeeper/logs:/datalog
- /home/xx/zookeeper/conf/zoo.cfg:/conf/zoo.cfg