Linux经验之_磁盘利用率告警处理SOP
前言
Github:https://github.com/HealerJean
1、检查是否磁盘空间不足
ssh
登录机器,执行df -h
命令查看磁盘空间使用情况,一般Use%
>85%
时需要清理
1.1、若为容器,
若为容器,查看
/
目录 和/docker
目录的使用情况;
[zhangyujin06@set-gh-windmill-riding-bikestatus-test02 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-8:2-33671654-d47ae77ea3384f2ac538bb7a77074e45646b095af4850ebd6054751e1e5abc6c
9.8G 2.6G 6.7G 28% /
tmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sdj1 20G 9.8G 8.9G 53% /docker
/dev/sda2 100G 12G 89G 12% /dev/termination-log
/dev/sda2 100G 12G 89G 12% /etc/hostname
/dev/sda2 100G 12G 89G 12% /etc/hosts
shm 64M 0 64M 0% /dev/shm
/dev/sda2 100G 12G 89G 12% /run/secrets
tmpfs 63G 12K 63G 1% /var/run/secrets/kubernetes.io/serviceaccount
tmpfs 64M 0 64M 0% /run
tmpfs 64M 0 64M 0% /run/lock
tmpfs 64M 0 64M 0% /var/log/journal
/dev/sda2 100G 12G 89G 12% /var/log/journal/4854d2045313e320b830a75210d51a7f
tmpfs 63G 0 63G 0% /proc/acpi
tmpfs 63G 0 63G 0% /proc/kcore
tmpfs 63G 0 63G 0% /proc/keys
tmpfs 63G 0 63G 0% /proc/timer_list
tmpfs 63G 0 63G 0% /proc/sched_debug
tmpfs 63G 0 63G 0% /proc/scsi
1.2、若为虚拟机或物理机
若为虚拟机或物理机,查看
/
目录和/opt
目录的使用情况
┌─[healerjean@MAC] - [~]
└─[$] df -h [19:47:58]
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s5s1 466Gi 14Gi 384Gi 4% 559993 4881892887 0% /
devfs 191Ki 191Ki 0Bi 100% 660 0 100% /dev
/dev/disk1s4 466Gi 4.0Gi 384Gi 2% 6 4882452874 0% /System/Volumes/VM
/dev/disk1s2 466Gi 351Mi 384Gi 1% 1551 4882451329 0% /System/Volumes/Preboot
/dev/disk1s6 466Gi 2.1Mi 384Gi 1% 19 4882452861 0% /System/Volumes/Update
/dev/disk1s1 466Gi 63Gi 384Gi 15% 763538 4881689342 0% /System/Volumes/Data
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /System/Volumes/Data/home
2、du
命令找出占用空间较大的目录
2> /dev/null
代表忽略掉错误提示信息(比如没有权限查看等)
#如果为/opt告警,则 遍历/opt下2层目录,从大到小排序显示前10个目录文件的大小(可根据现场需要修改命令中遍历的层级和目录)
du -h --max-depth=2 /opt/ 2>/dev/null | sort -rh | head
du -h --max-depth=2 /opt/ | sort -rh | head
#如果为/告警,则 遍历/下2层目录,从大到小排序显示前10个目录文件的大小(可根据现场需要修改命令中遍历的层级和目录)
du -h --max-depth=2 / 2>/dev/null | sort -rh | head
du -h --max-depth=2 / | sort -rh | head
3、进入空间较大的目录准备删除
echo '' >
命令 清空 或rm
命令删除 日志文件或临时目录,以下是几种常见方法及命令:注:为防止
rm
删除了有进程正在引用的文件、导致文件句柄未释放进而引起磁盘空间的浪费,比较建议使用echo
命令清空文件
3.1、echo清空一个文件
echo '' > 文件名.log
3.2、批量清空多个log文件
# 批量echo清空1天以前的日志文件,可根据现场需要修改命令参数
for i in `find /opt/logs/logs/ -type f -mtime +1 -name "*.log" 2>/dev/null`; do echo '' >$i; done
# 批量echo清空500M以上的日志文件,可根据现场需要修改命令参数
for i in `find /opt/logs/logs/ -type f -size +500M -name "*.log" 2>/dev/null`; do echo '' >$i; done
# rm删除10小时以前修改过的.log文件
find /opt/logs/logs/ -type f -min +600 -name "*.log" 2>/dev/null | xargs -i rm -fr {}
4、验证
接着再按照1中进行就可以了