别问小编为什么写这篇文章,写这篇文章肯定是有原因的
是这么回事,去年小编入职一家深圳的小型外包创业公司,当时给甲方(买过保险的大家可能会知道‘亚太财险’这家公司)做了一个小程序端的视频在线理赔功能。功能完成后在测试环境测了下没发现什么问题,只是觉得日志打印的内容有点多,当时小编也是刚刚出来实习没想那么多也不懂什么影不影响环境、数据过大导致服务器崩溃的问题。项目经理说上我就跟着上呗。
结果功能当天晚上9点左右上线,第二天一早服务器就崩溃了,一查问题发现项目的日志高达40GB,经过监控发现只要使用视频功能就会打印出海量的日志信息。后来经过排查问题也解决了是引用了一个第三方的jar导致的。
当天我在甲方现场办公一天,任务就是定时查看服务器磁盘占用率和定时清理日志文件以及查找问题,所以这就是我今天为什么写这篇的文章的原因(恰好昨天也在清理文件所以就写了这篇文件)。
df命令
df命令的基本使用格式:
df 【选项】【目录或文件名】
选项 | 作用 |
---|---|
-a | 显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统; |
-m | 以 MB 为单位显示容量; |
-k | 以 KB 为单位显示容量,默认以 KB 为单位; |
-h | 使用人们习惯的 KB、MB 或 GB 等单位自行显示容量; |
-T | 显示该分区的文件系统名称; |
-i | 不用硬盘容量显示,而是以含有 inode 的数量来显示。 |
【例1】
如上:不使用任何选项的 df 命令,默认会将系统内所有的文件系统信息,以 KB 为单位显示出来。
本例中,由 df 命令显示出的各列信息的含义分别是:
- Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
- 1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
- Used:表示用掉的硬盘空间大小;
- Available:表示剩余的硬盘空间大小;
- Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
- Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
【例2】
这里使用- h选项,因此文件系统的各种容量数据,会以人们习惯的单位(通常使用 GB 或 MB)显示出来
【例3】
这里使用 -h 选项及文件目录名。在这种情况下,df 命令会自动分析该目录所在的分区,并将所在分区的有关信息显示出来。由此,我们就可以知道,该目录下还可以使用多少容量。
【例4】
这里使用 du -sh * ,来查看当前目录下的各自文件占用内存详情。
通过上面的命令我们可以轻松的发现磁盘占用过高的文件有哪些,然后在进行相关的数据清理操作,
这个我主要说一下日志的清理方式:
方式1:rm -rf /xx/xx/xx.info —这个命令直接删除相关的文件(有个弊端:如果项目正在运行此时你执行删除命令,则可能会导致日志数据找不到相关的文件输出,从而引发相关问题)
方式2:>/xx/xx/xx.info —-这个命令会直接清空给定文件的文件内容,而不会删除文件。
有些项目的日志文件可能并没有规范起来,那么它可能会一直生成的新的日志文件从而导致日志文件过多删除起来没有那么方便,那么此时可能使用方式3删除:
方式3:>rm -f /xx/xx/info.19*.info 如下图
其中*号为19后面的任何字符。 .info为info结尾的文件类型
好了本篇文章到此落笔。