一序:
针对常见的后端问题,整理下必要的命令。本文属于第一篇
一 磁盘空间不足报警:
对于磁盘告警,常见思路就是登陆进去机器,先看下磁盘的的空间使用情况,然后确定哪些文件占用大(主要是日志文件),有必要的进行处理(压缩备份)或者直接删除。
df 命令:基于文件系统总体来计算,通过文件系统中未分配空间来确定系统中已经分配空间的大小
1查看磁盘空间:df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 2.4G 35G 7% /
tmpfs 16G 12K 16G 1% /dev/shm
/dev/vdb1 99G 59G 35G 63% /opt
是按照G为单位输出的,人性化些
默认是这样的。
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 41282880 2497948 36687884 7% /
tmpfs 16440296 12 16440284 1% /dev/shm
/dev/vdb1 103210272 61713940 36253556 63% /opt
含义:
第一行是文件系统对应的硬盘分区
第二行是分区包含的数据块的数据(1数据库为1024字节)
第三四行是已用和未用的数据块数组
第五行是普通用户空间使用的百分比
第六行是文件系统的安装点
其他参数如-ia查看挂载点的可以去深入了解、
2. 查看文件目录大小
du -h --max-depth=1查看一级目录
可以根据之前磁盘情况,有针对性去看占用磁盘高的文件夹下面一级目录的占用情况、
比如截图所示,就针对性的找大的去处理。
3. 按照文件夹大小排序
du -sm /opt/web/*|sort -nr|more
4. 直接找较大日志文件
如果自己对系统比较熟悉,直接查找大日志文件
find . -type f -size +500M -print0 | xargs -0 du -h | sort -n
找出500M以上的文件
三 删除
可能收到报警短信后脑子着急,找到大日志文件后想起立即执行rm删除。
比如上面的Tomcat输出的catalina.out,但是如果服务器还在运行,执行rm删除后不会立即释放磁盘空间,需要重启server才生效。
或者采用立即生效的echo " >XX.log (截取为1字节)
也有人习惯用cat /dev/null >XX.log(截取为0字节)
************************************************
当然如果报警太迟没有处理,磁盘满了机器都登不进去了,就需要运营介入了。
有个良好的习惯很重要,上次我们收到报警就是以为一个服务上线后调用量小没有加上日志压缩处理。访问量大了一天10来个G日志,很快就会报警了。